如何避免逗号 IDE 引发的 "not in ecosystem" 错误?

How can I avoid "not in ecosystem" errors thrown by comma IDE?

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

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());

它工作正常。然而,Comma 抱怨 TestUtils 没有在“生态系统”中找到,并且抛出来自 TestUtils 模块的标识符错误,它没有加载:

我通过以下方式阻止了 Comma 的抱怨:

  1. 导出 TestUtils 文件中的标识符
  2. 在我的测试文件中使用以下内容完全限定标识符:TestUtils::check_cmd_output(...)
  3. TestUtils 添加到 META6.json 文件中的 provides 散列。

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

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

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

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