Итак, ваш тест содержит что-то вроде:
my %v = ReadIni( 'ReadConfig.ini' );
Когда вы объявляете относительный путь к файлу, он будет абсолютным против $*CWD
.Поэтому, если вы запустите свой тест в папке t/
, он будет искать t/ReadConfig.ini
, а если вы запустите его в папке t/../
, он будет искать ../ReadConfig.ini
.Поэтому, когда вы пишете тесты, вы должны использовать абсолютные пути, чтобы инструментарий не ограничивался запуском тестов в определенном месте.
my %v = ReadIni( $*PROGRAM.dirname.IO.add('ReadConfig.ini') );
С другой стороны, если вы указали абсолютный путь к файлу, тогданет никаких расхождений в том, что имеется в виду, и это будет делать то, что вы имеете в виду, независимо от того, в каком каталоге вы находитесь. Однако я бы предложил не использовать dirname
, который не включает в себя часть тома на окнах, а вместо этого использовал бы parent:
my %v = ReadIni( $*PROGRAM.parent.add('ReadConfig.ini') );