perl - 我可以判断是否所有测试都通过了 Perl 的 Test::More 吗?

标签 perl unit-testing

我有一个使用 Test::More 编写的 Perl 测试脚本。在退出之前,如果所有测试都通过,我想执行一些清理操作。如果任何测试失败,我希望保留所有内容以进行故障排除。

Test::More 内是否有标志或单个测试脚本中的其他最佳实践,以判断测试本身完成后是否“一切顺利”?

最佳答案

您可以使用 Test::Builder 访问测试的当前状态,可通过 Test::More->builder 获得:

use strict;
use warnings;
use Test::More tests => 1;

ok(int rand 2, 'this test randomly passes or fails');

if (Test::More->builder->is_passing)
{
    print "hooray!\n";
}
else
{
    print "aw... :(\n";
}

或者,您可以在脚本末尾进行清理,但如果出现问题,请提前退出,使用 Test::MoreBAIL_OUT("reason Why you are保释”);

您可以收集有关测试状态的许多其他数据和统计数据;请参阅 Test::Builder 的文档.

关于perl - 我可以判断是否所有测试都通过了 Perl 的 Test::More 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1506674/

相关文章:

Perl FFMpeg 打印输出

perl - 使用 perl 代码从机场代码中查找时区

html - 如何在 Perl CGI 文件中正确呈现 HTML 表

javascript - 单元测试私有(private)模块功能

python - 如何为 Python 单元测试提供标准输入、文件和环境变量输入?

c# - 如何验证一个事件已经被模拟取消订阅

c# - 初学者在使用模拟框架 C# .net 时遇到问题

python - 如果作为 Python 子进程调用,多线程 Perl 脚本会导致管道损坏

c++ - 如何使用 XS 连接 C++ 和 Perl?

flutter - 如何在 Dart 中模拟 File 实例