4

我正在使用 Eclipse EPIC IDE 编写一些 Perl CGI 脚本,这些脚本调用我也编写的一些 Perl 模块。EPIC IDE 允许我配置一个运行我的 CGI 脚本的 Perl CGI“运行配置”。然后我设置了 Selenium,我的一个单元测试文件运行了一些 Selenium 命令来运行我的 cgi 脚本。但是来自 Module::Build dispatch 'testcover' 的覆盖率报告并没有显示我的任何模块代码已被执行。它已由我的 cgi 脚本执行,但我猜 CGI 脚本是手动运行的,并没有由我的单元测试文件直接执行,所以也许这就是无法识别覆盖范围的原因。有没有办法做到这一点,以便我可以以某种方式将 Selenium 和单元测试文件以及代码覆盖率集成在一起?

4

1 回答 1

3

我不熟悉 Selenium 或 EPIC,但一种解决方法(除非/直到有人提供更多本机解决方案)是简单地将“-MDevel::Cover”包含到运行配置命令行中。

更糟的是,在 BEGIN{} 块中添加一些条件逻辑 - 基于一些 selenium 环境变量 - 有条件地执行use Devel::Cover

更新

应该可以使用 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;}'

$
于 2010-05-25T01:08:50.587 回答