1

有很多关于在模块上编写覆盖率的材料,但是如果我想为命令可运行的 perl 脚本(main.pl)编写测试怎么办?

是否需要为 main.pl 编写测试,或者我只需要为模块编写测试就可以了?

假设我有这两个脚本。

命令可运行脚本

主文件

import Halo;
&main;
sub main() {
    my $a = 2;
    my $b = 3;
    my $c = Halo.add($a, $b);
    print "a + b = $c\n";
}

===============================================

Perl 模块

光环.pm

package Halo;
sub add() {
    my ($class, $a, $b) = @_;
    return $a + $b;
}
1;

===============================================

在命令行中运行:
perl main.pl

4

2 回答 2

1

我建议您研究“单元”和“端到端”测试以了解每种测试的好处。我建议你两者都做。使用“modulinos”可以轻松测试您的主脚本,让您可以轻松地与现有的 Perl 测试生态系统联系起来。

于 2022-02-17T07:08:52.257 回答
1

来自概要:https ://metacpan.org/pod/Devel::Cover#SYNOPSIS

$ perl -I. -MDevel::Cover main.pl
$ cover

您还需要稍微更改您的代码。你需要“use”而不是“import”和“Halo->add”而不是“Halo.add”。(这些更改与 Devel::Cover 无关。)

于 2022-02-17T16:43:16.877 回答