如何避免逗号 IDE 引发的“不在生态系统中”错误?

Ste*_*ieD 5 raku commaide

我的模块t/目录中有一个测试文件,它对包含一些变量和例程的文件执行useaTestUtils操作:

use Test;
use TestUtils;

plan 4;
check_cmd_output('No arguments');
check_cmd_output('Successfully ingested', test_md_file);
check_cmd_output('Successfully ingested', test_md_file, 1);
check_cmd_output('Successfully ingested', vimwiki_arg_sim());
Run Code Online (Sandbox Code Playgroud)

效果很好。然而,Comma 抱怨TestUtils没有在“生态系统中”找到,并且抛出来自TestUtils未加载模块的标识符的错误:

在此输入图像描述

我能够通过以下方式阻止逗号抱怨:

  1. TestUtils导出文件中的标识符
  2. 使用以下内容完全限定我的测试文件中的标识符:TestUtils::check_cmd_output(...)
  3. 添加TestUtilsprovidesMETA6.json 文件中的哈希值。

我想可能有更好的方法。我尝试做类似use lib 't'和 之类的事情use lib '.',但这没有帮助。谢谢。

Jon*_*ton 4

逗号不能完美地处理这种情况;它理解(遵循 IntelliJ 平台命名约定):

  • 源根,用作解决use项目内语句的根(任何未解决的内容都假定来自模块生态系统)
  • 测试根,在其中找到测试文件(例如,用于能够在xt目录中运行测试)

然而,这些是相互排斥的。如果TestUtils模块要放置在lib内的目录中t,则lib可以将该目录标记为源根目录,并且应该解析符号。