我正在使用Eclipse EPIC IDE编写一些Perl CGI脚本,这些脚本调用了我也写过的一些Perl模块。 EPIC IDE允许我配置运行我的CGI脚本的Perl CGI“运行配置”。然后我设置了Selenium,我的一个单元测试文件运行一些Selenium命令来运行我的cgi脚本。但是Module :: Build dispatch'testcover'的覆盖率报告并未显示我的任何模块代码已被执行。它是由我的cgi脚本执行的,但我猜CGI脚本是手动运行的,并没有直接由我的单元测试文件执行,所以也许这就是为什么覆盖范围没有得到识别。有没有办法做到这一点,所以我可以以某种方式集成Selenium和单元测试文件和代码覆盖?
答案 0 :(得分:3)
我不熟悉Selenium或EPIC,但有一种解决方法(除非有人提供更多本机解决方案)只需在运行配置命令行中包含“-MDevel :: Cover”即可。
更糟糕的是,在BEGIN {}块中添加一些条件逻辑 - 基于某些selenium环境变量 - 有条件地use Devel::Cover
<强>更新强>:
应该可以使用-MDevel::Cover=-silent,1
$ perl5.8 -MDevel::Cover -e '{1;}'
Devel::Cover 0.64: Collecting coverage data for branch, blah
Selecting packages matching:
Ignoring packages matching:
blah, blah, blah
---------------------------- ------ ------ ------ ------ ------ ------ ------
File stmt bran cond sub pod time total
---------------------------- ------ ------ ------ ------ ------ ------ ------
Total n/a n/a n/a n/a n/a n/a n/a
---------------------------- ------ ------ ------ ------ ------ ------ ------
$ perl5.8 -MDevel::Cover=-silent,1 -e '{1;}'
$