I have a test file in my module's t/
directory that does a use
on a TestUtils
files which has some variables and routines:
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());
It works fine. However, Comma was complaining about TestUtils
not being found "in the ecosystem" as well as throwing errors with identifiers from the TestUtils
module that it was not loading:
I was able to stop Comma from complaining by:
- Exporting the identifiers in the
TestUtils
file - Fully qualifying the identifiers in my test file with something like:
TestUtils::check_cmd_output(...)
- Adding
TestUtils
to theprovides
hash in the META6.json file.
I'm thinking there is probably a better way. I tried doing stuff like use lib 't'
and use lib '.'
but that did not help. Thanks.
Comma doesn't handle this situation perfectly; it understands (following the IntelliJ platform naming conventions):
use
statements within the project (anything not resolved is assumed to be from the module ecosystem)xt
directory)These are, however, mutually exclusive. If the
TestUtils
module were to be placed in alib
directory inside oft
, then thatlib
directory could be marked as a source root, and the symbols should be resolved.