我在这里和http://www.perlmonks.org上看到了一些类似的问题,但我仍然不明白。假设我有一个包含'lib/‘和't’目录的项目。我用‘prove’运行我的测试:
$ cd $PROJECT_ROOT
$ prove ./*.t我想获得一个html格式的报告,用于'lib/‘目录中的一个或多个文件。我不需要“t”目录中的文件的报告。一个简单的例子就足够了。谢谢
发布于 2012-06-27 01:26:40
perl Makefile.PL或perl Build.PLcover -test发布于 2015-02-11 00:09:34
正确的方法是始终从Makefile.PL/Build.PL开始,正如选择的答案所建议的那样。然而,有时候你并不是最开始的那个人,所以...
我曾经做过一个假的makefile:
% cat Makefile
test:
prove -Ilib -r t以下方法似乎也有效(不接触磁盘上的任何文件):
cover -t -make 'prove -Ilib -r t; exit $?'这之所以有效,是因为perl的system/exec处理带有外壳元字符的参数的方式(在本例中是;),并且如果cover决定更严格地引用它,将来可能会中断。另外,它不应该在windows下工作。我希望cover有一个-prove选项。
它仍然在非标准位置为*.t和CPAN模块生成覆盖范围。可以使用+select/+ignore选项修复此行为(请参阅Devel::Cover's manpage):
cover -t +select ^lib +ignore ^所以tl;dr "magic“命令是
cover -t +select ^lib +ignore ^ -make 'prove -Ilib -r t; exit $?'编辑以下内容对我不起作用-它只打印简短的摘要:
PERL5OPT="$PERL5OPT -MDevel::Cover" prove -Ilib -r t
cover -t +select ^lib +ignore ^请注意,prove -MSomething将Something应用于prove本身,并且不传递它(与-I不同)。
https://stackoverflow.com/questions/11212425
复制相似问题