我的模块有一堆单元测试,我发现我将相同的模拟和设置代码从一个复制到另一个。我怎样才能干掉它并重用模拟代码?
我把这个简单的模拟对象放在我的测试旁边:
package MockObject;
1;
如果我在测试用例中只说use MockObject;
,make test
找不到MockObject。说得通;毕竟,它没有安装在系统范围内,并且它不在被测模块的旁边。
我可以使用prove -I lib -I t t/*.t
运行我的测试,但我想保留make test
,如果只是为了减少输入几个字符的懒惰。
由于模拟对象不是一个完整的模块,不应该正式安装,我不能也不想在Makefile.PL中设置TEST_REQUIRES
。
向Makefile.PL添加test => { FILES => 't/*.t', INC => 't/' }
没有帮助。
我如何(简单地)使用MakeMaker生成的Makefile重用Perl模拟代码?
答案 0 :(得分:1)
设置PERL5LIB或在脚本中添加use lib
。我发现FindBin package对于设置测试的lib路径很有用。
use FindBin qw($Bin);
use lib "$Bin/../lib";
其中:
$Bin - path to bin directory from where script was invoked