首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用Devel::Cover with prove?

如何使用Devel::Cover with prove?
EN

Stack Overflow用户
提问于 2012-06-27 01:05:18
回答 2查看 2.1K关注 0票数 8

我在这里和http://www.perlmonks.org上看到了一些类似的问题,但我仍然不明白。假设我有一个包含'lib/‘和't’目录的项目。我用‘prove’运行我的测试:

代码语言:javascript
复制
$ cd $PROJECT_ROOT
$ prove ./*.t

我想获得一个html格式的报告,用于'lib/‘目录中的一个或多个文件。我不需要“t”目录中的文件的报告。一个简单的例子就足够了。谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-06-27 01:26:40

  1. perl Makefile.PLperl Build.PL
  2. cover -test
票数 7
EN

Stack Overflow用户

发布于 2015-02-11 00:09:34

正确的方法是始终从Makefile.PL/Build.PL开始,正如选择的答案所建议的那样。然而,有时候你并不是最开始的那个人,所以...

我曾经做过一个假的makefile:

代码语言:javascript
复制
 % cat Makefile
 test:
      prove -Ilib -r t

以下方法似乎也有效(不接触磁盘上的任何文件):

代码语言:javascript
复制
cover -t -make 'prove -Ilib -r t; exit $?'

这之所以有效,是因为perl的system/exec处理带有外壳元字符的参数的方式(在本例中是;),并且如果cover决定更严格地引用它,将来可能会中断。另外,它不应该在windows下工作。我希望cover有一个-prove选项。

它仍然在非标准位置为*.t和CPAN模块生成覆盖范围。可以使用+select/+ignore选项修复此行为(请参阅Devel::Cover's manpage):

代码语言:javascript
复制
cover -t +select ^lib +ignore ^

所以tl;dr "magic“命令是

代码语言:javascript
复制
cover -t +select ^lib +ignore ^ -make 'prove -Ilib -r t; exit $?'

编辑以下内容对我不起作用-它只打印简短的摘要:

代码语言:javascript
复制
 PERL5OPT="$PERL5OPT -MDevel::Cover" prove -Ilib -r t
 cover -t +select ^lib +ignore ^

请注意,prove -MSomethingSomething应用于prove本身,并且不传递它(与-I不同)。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11212425

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档