gpt4 book ai didi

perl - 我应该在哪里放置 Perl .t 测试的通用实用函数?

转载 作者:行者123 更新时间:2023-11-28 19:42:49 25 4
gpt4 key购买 nike

我开始使用 Test::More ,已经有一些 .t 测试脚本。现在我想定义一个函数,它只用于测试,但跨越不同的 .t 文件。放置这样一个函数的最佳位置在哪里?在没有任何测试的情况下定义另一个 .t 并在需要的地方 require 它? (作为旁注,我使用由 Module::Starter 创建的模块结构)

最佳答案

最好的方法是将您的测试函数像任何其他函数集一样放入一个模块中。然后您可以使用 Test::Builder让您的测试诊断/失败消息表现得好像失败源自 .t 文件,而不是您的模块。

这是一个简单的例子。

package Test::YourModule;

use Test::Builder;
use Sub::Exporter -setup => { exports => ['exitcode_ok'] }; # or 'use Exporter' etc.

my $Test = Test::Builder->new;

# Runs the command and makes sure its exit code is $expected_code. Contrived!
sub exitcode_ok {
my ($command, $expected_code, $name) = @_;

system($command);
my $exit = $? >> 8;
my $message = $!;

my $ok = $Test->is_num( $exit, $expected_code, $name );
if ( !$ok ) {
$Test->diag("$command exited incorrectly with the error '$message'");
}

return $ok;
}

在你的脚本中:

use Test::More plan => 1;
use Test::YourModule qw(exitcode_ok);
exitcode_ok('date', 0, 'date exits without errors');

关于perl - 我应该在哪里放置 Perl .t 测试的通用实用函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2833991/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com