问题标签 [devel-cover]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
161 浏览

perl - 如何将默认 Module::Build / Test::More 目录从“lib”更改为其他目录?

使用这篇关于 Perl 单元测试和代码覆盖率的帖子中的目录和文件架构(顺便说一句,这非常有帮助),我将运行单元测试和代码覆盖率的文件复制到一个新的“lib”目录中,它的工作方式类似于魅力!

但是,我需要该模块在现有的“脚本”目录中查找..

我已经梳理了CPAN上的 Module::Build 文档,但仍然出现Can't find file lib/processBuildSubs.pm错误

这是我到目前为止所拥有的......

更新!

也刚试过这个..

我猜有一些进展,它似乎正在寻找lib/scripts/..,但仍然不是我需要的..

更新!

有点像黑客工作,但现在它对我有用..

我运行这个脚本来更改目录名称,运行测试/覆盖并改回目录名称......有人有更好的想法吗?

0 投票
2 回答
122 浏览

perl - 如何在 Perl 中更改 Devel::Cover 的 CSS?

在运行./Build testcover以测试代码覆盖率时,有没有办法我可以传递某种选项来使用我自己的样式表,也许作为替代?

我查看了Devel::Cover CPAN 文档无济于事。

0 投票
1 回答
1318 浏览

perl - Devel::Cover 合并 Perl 脚本和模块的覆盖率数据

我在合并数据以覆盖 Perl 脚本和模块时遇到问题。单独运行 Devel::Cover 工作得很好,但是当我尝试合并数据时,我丢失的只是 Perl 脚本而不是模块的统计信息。

让我解释..

我有一个看起来像这样的目录树..

在根 Code_Coverage_Test 目录中,我有 Build.pl 文件,该文件为模块和脚本构建测试,该脚本启动另外两个脚本,为我自动执行一些命令。

./Build.pl

./startTests.sh

在 lib 目录中,我有我试图在其上运行代码覆盖率的文件。

lib/testPLCoverage.pl

库/testPMCoverage.pm

在 t 目录中,我有模块的 .t 测试文件和 2 个为我启动测试的脚本。这两个脚本都由根目录中的 startTests.sh 调用

t/testPMCoverage.t

t/doPLtest.sh

t/doPMtest.sh

我遇到的问题是,当 doPLtests.sh 脚本运行时,我得到了覆盖率数据,没问题..

但是,当 doPMtest.sh 脚本完成并且 startTests.sh 脚本启动 Build testcover 命令时,我会丢失该数据并收到这些消息...

..不知何故我丢失了数据

如何结合 Perl 模块和 Perl 脚本测试以在一个文件中获得有效的代码覆盖率?

0 投票
1 回答
703 浏览

perl - 无法使用 Devel::Cover 生成代码覆盖率结果

我试图找到一个c4rgr.pl测试文件的代码覆盖率Devel::Cover。我有一个.pm模块位于同一区域。我正在使用perl -MDevel::Cover c4rgr.pl,它生成一个cover_db并且里面有一个runs子目录。

runs子目录中,每次运行Cover命令时都会创建一个版本化目录并cover.13获得一个。这个cover.13文件(我认为)包含代码覆盖结果的原始数据。

尽管如此,我还是无法以 HTML 输出格式或在终端屏幕上获得测试结果。

这就是我所做的:

  1. 跑过perl -MDevel::Cover c4rgr.pl

    在这里,c4rgr.pl使用位于同一区域的 .pm 模块。

  2. 当我运行上面的命令时,它会运行测试文件,但没有Devel::Cover获得 HTML 输出中显示的测试覆盖率输出。然而,cover.13每次都会创建该文件。

    Cover.13<- 1401378982.24872.12631<- 运行 <- cover_db

  3. 有人可以告诉我如何获取 HTML 文件吗?我能够运行具有相同功能的虚拟测试并生成 HTML 文件。但是根据我的实际测试,它没有。或者有没有办法将cover.13文件转换为在我的情况下没有完成的 HTML?

0 投票
1 回答
172 浏览

perl - Devel::Cover 使用一个包装器和一个带有测试脚本的 .pm 模块

我有一个 .pm 模块 ( Main.pm),它有一个用 perl(Mainwrapper) 编写的包装器。这两个是开发团队的一部分。我在 perl 中编写了一个测试脚本来测试 wrapper( Testwrapper.pl)。现在,我需要使用Devel::Cover包装器(由其他人编写)及其测试脚本(由我编写)来获取覆盖率。Mainwrapper 当然使用 .pm 模块。

perl -MDEVEL:COVER Testwrapper.pl在拥有所有 MainwrapperMain.pmTestwrapper.pl在同一目录中之后,我尝试使用。也包含Main.pmTestwrapper.pl代码中。我只能获得报告中Testwrapper.plMain.pm模块的报道。我执行的一种解决方法是将 Mainwrapper 重命名为Mainwrapper.pm并包含在Testwrapper.pl文件中。这将使我涵盖所有人。然而,这不是一个长期的解决方案。谁能告诉我该怎么做?

0 投票
1 回答
104 浏览

perl - 提供切换Devel::Cover开/关

在测试 CodeA 的测试代码中使用 Devel::Cover 时,Devel::Cover 是否可以选择关闭覆盖范围。有没有办法根据用户打开或关闭覆盖模块?

测试代码测试 CodeA。每当测试 CodeA 命令时,Devel::Cover 命令就会嵌入到测试代码中。

Devel::Cover 是否包含可以打开或关闭此覆盖范围集合的任何条款?

0 投票
1 回答
94 浏览

perl - 如何为封面脚本提供 @INC 作为 Devel::Cover 的一部分

如何从外部提供作为模块@INC一部分的封面脚本。Devel::Cover我希望通过搜索与触发位置相关的库来运行封面脚本。

想法是将封面作为源的一部分,无论谁得到它,都应该能够直接运行而无需考虑库,这将与它所在的位置有关。

我试图更改脚本并BEGIN在其中有一个块,它将路径推送到INC. 它工作正常,但更改脚本并不是那么好。我想INC在调用它时拥有我的相对路径。

0 投票
0 回答
109 浏览

perl - 使用 Devel::Cover 过滤目录

我想在 CentOS 中使用 apache Web 服务器覆盖我的基于 Perl 的应用程序,并Devel::Cover努力完成它。经过一些初步的努力,我安装了它。由于PERL5OPTenv 变量没有帮助我获得覆盖率,因此我尝试将其包含use Devel::Cover在代码中(我知道这是一个坏主意,但它符合我的目的)。在cover_db我重新启动网络服务器后,它正在生成它的运行/结构,但数据似乎也在使用 CPAN 通用模块完成事务,这降低了总覆盖率分数。

例如:如果我使用来自 的单一方法Net::FTP,它会通过考虑该模块中的总行数来降低总分。CPAN 的所有模块也是如此。

我需要的是能够从特定目录中选择文件进行覆盖并忽略所有其他文件。+inc从描述来看,和选项似乎-inc是为此设计的,但是当我尝试使用它们时,出现以下错误

Unknown option: inc

我想知道几件事。

  1. 使用交易更新后cover_db,是否可以cover -options 在生成报告期间从中过滤掉?
  2. 有没有其他方法可以只覆盖特定路径?

欣赏回应。

0 投票
1 回答
1216 浏览

perl - Devel::Cover 条件三元运算符的分支覆盖

我在一个模块上运行coverDevel::Cover并在使用条件三元运算符的行中获得 50% 的分支覆盖率,即

return @rgb ? map { hex $_ } @rgb : undef;

这个可以吗?if/else为了获得 100% 的覆盖率,我是否必须更改代码以使用块?

我是新手,Devel::Cover因此您可以提供的有关此方面的任何见解都将非常有帮助。

谢谢

0 投票
2 回答
92 浏览

perl - Devel::Cover HTML 报告进程被杀

我有超过 200 多个 selenium 测试用例的测试套件,在每个测试用例中我使用 Devel::Cover 捕获覆盖率。运行所有测试用例后,当我尝试使用“cover cover_db -report html”生成 HTML 报告时,该进程在消耗了近 16 GB 的所有内存并出现内存不足的错误后被终止。知道如何解决这个问题吗?任何帮助都会很棒