代码之家  ›  专栏  ›  技术社区  ›  Kurt W. Leucht

Perl有哪些代码覆盖工具?

  •  17
  • Kurt W. Leucht  · 技术社区  · 16 年前

    Perl有没有好的(最好是免费的)代码覆盖工具?

    4 回复  |  直到 6 年前
        1
  •  23
  •   arhak Martin Nycander    6 年前

    对, Devel::Cover 是前进的道路。

    如果您开发一个模块,并使用 Module::Build 为了管理安装,您甚至有一个 testcover 目标:

     perl Build.PL
     ./Build testcover
    

    它运行整个测试套件,并以漂亮的HTML格式生成一个组合的覆盖率报告,您可以在其中浏览模块并查看它们的覆盖率。

        2
  •  28
  •   arhak Martin Nycander    6 年前

    像往常一样,CPAN是你的朋友:看看 Devel::Cover

        3
  •  11
  •   arhak Martin Nycander    6 年前

    如前所述,devel::cover是你的朋友,但你也会想用谷歌搜索。它的文档有点稀疏,如果您彻底改变您的环境,您将需要重新安装它,因为它构建了devel::cover::inc,在安装时从您的环境中提取了大量信息。这给我们的工作带来了很多问题,因为我们有一个共享的CPAN环境,如果一个开发人员安装了devel::cover,而另一个开发人员试图运行它,那么奇怪(和不正确)的结果很常见。

    如果您使用此模块,还可以查看 Devel::CoverX::Covered . 这个模块将捕获devel::cover丢弃的大部分信息。它非常方便。

        4
  •  5
  •   dland    16 年前

    Moritz讨论了使用module::build构建的模块如何轻松使用devel::cover。

    对于使用extutils::makemaker的模块,存在一个扩展模块来调用相同的功能。在调用writeMakefile()之前添加以下代码:

    eval "use ExtUtils::MakeMaker::Coverage";
    if( !$@ ) {
        print "Adding testcover target\n";
    }
    

    …将允许运行命令“make testcover”,并让devel::cover执行其魔力。