perl - 我如何运行 Perl 测试并将结果与​​ Ant 中的 JUnit 报告合并?

标签 perl unit-testing testing ant junit

我想在 Ant 下运行 Perl 测试并以与 Ant JUnit task 生成的格式类似的格式生成 XML 输出.

我意识到格式化程序 TAP::Formatter::JUnitTAP::Harness::JUnit存在,但由于我没有使用 Perl 的经验,我不知道从哪里开始。

最佳答案

如果您已经使用 Test::More 等进行测试,那么使用 prove --formatter TAP::Formatter::JUnit 是最简单的方法.您无需更改任何 Perl 测试或代码,您将获得基于 Java 的工具使用的 JUnit 输出。

我们将此设置与 Hudson 一起使用,这样我们就可以跟踪我们的测试并根据需要从 Hudson 的内置工具中获得良好的测试失败报告,而无需进行大量扭曲。我们的构建是基于 make 的,但这是与您的设置唯一真正的区别。

这意味着您应该能够将 prove 作为外部任务运行并获得好处,而无需显着更改 Ant 工具(如果不清楚的话)。

根据您安装的 Perl,您可能有也可能没有prove。运行

perl -MTest::Harness -e'print "$Test::Harness::VERSION\n"'

查看您的版本 - 3.00 或更高版本将有证明;理想情况下,您应该安装 3.23 以获得最佳功能:

sudo cpan Test::Harness TAP::Formatter::JUnit

这会安装最新的 Test::Harness、TAP::Formatter::JUnit 和所有需要的先决条件。使用

尝试外部过程
prove --formatter TAP::Formatter::JUnit your/testsuite/directory/

您应该在 prove 运行结束时得到一个 JUnit XML 文件。如果一切正常,将它添加到 Ant 中

<target name="run">
<exec executable="prove">
  <arg value="--formatter" />
  <arg value="TAP::Formatter::JUnit" />
  <arg path="your/testsuite/directory/" />
</exec>

Ant documentation for "Exec"

(我相信这是运行外部程序的正确 Ant 语法,但我不是 Ant 专家。)

关于perl - 我如何运行 Perl 测试并将结果与​​ Ant 中的 JUnit 报告合并?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4095680/

相关文章:

perl - Curl Perl 模块不工作,缺少 formadd 方法

正则表达式模式 - 忽略空格、换行符、制表符等

regex - 如何使用正则表达式解析 Perl 中引用的 CSV?

unit-testing - 在单元测试中使用 webapp2 i18n

javascript - 用 jest 测试 React 中的异步方法

testing - 如何测试您的网络服务器速度?

regex - 解析字符串时的Perl while循环

python - 如何测试django中的编辑功能? (错误 django.db.utils.IntegrityError : NOT NULL constraint failed)

java - test 和 src 目录/代码之间的差异在 test 文件夹中不起作用

Java - 转换文件名 - 出错?