我现在开始使用Test::More,已经有一些.t测试脚本。现在,我想定义一个仅用于测试,但跨不同.t文件的函数。放置这种功能的最佳位置在哪里?定义另一个.t而不进行任何测试,并在需要的地方require
? (作为旁注,我使用Module::Starter创建的模块结构)
最佳答案
如rjh所示编写模块。将其放在t/lib/Test/YourThing.pm中,然后可以按以下方式加载:
use lib 't/lib';
use Test::YourThing;
或者,您可以将其直接放在t/Test/YourThing.pm中,将其称为
package t::Test::YourThing
并加载为:use t::Test::YourThing;
好处是不必在每个测试文件中写入
use lib
行,并将其明确标识为本地测试模块。不利的一面是t/困惑,如果为“。”,它将不起作用。不在@INC
中(例如,如果您以taint模式运行测试,但是可以使用use lib "."
解决),并且如果您决定将.pm文件移出项目,则必须重写所有用法。你的选择。关于perl - 在Perl .t测试中,应该将通用实用程序功能放在哪里?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2833991/