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

发布于 2024-10-01 02:40:27 字数 445 浏览 3 评论 0原文

我想在 Ant 下运行 Perl 测试,并以与 Ant 生成的格式类似的格式生成 XML 输出 < a href="http://ant.apache.org/manual/Tasks/junit.html" rel="nofollow">JUnit 任务。

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

I'd like to run Perl tests under Ant and produce XML output in a similar format to that produced by the Ant JUnit task.

I realize that the formatters TAP::Formatter::JUnit and TAP::Harness::JUnit exist, but since I have no experience in Perl I do not know where to start.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

千纸鹤带着心事 2024-10-08 02:40:27

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

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

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

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

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

看看您拥有哪个版本 - 3.00 或更高版本将有 prove;理想情况下,您应该安装 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>

“Exec”的 Ant 文档

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

If you already have tests using Test::More or the like, then using prove --formatter TAP::Formatter::JUnit is the simplest way to go. You don't change any of your Perl tests or code, and you get the JUnit output that the Java-based tools use.

We use this setup with Hudson so we can track our tests and get good test failure reports as needed from Hudson's built-in tools without a lot of contortions. Our build is make-based, but that's the only real difference from your setup.

This means you should be able to run prove as an external task and get the benefits without having to change your Ant tooling significantly, if that wasn't clear.

Depending on which Perl you have installed, you may or may not have prove. Run

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

to see which version you've got - 3.00 or better will have prove; ideally, you should install 3.23 to get the best functionality:

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

This installs the most recent Test::Harness, TAP::Formatter::JUnit, and all needed prerequisites. Try out the external process with

prove --formatter TAP::Formatter::JUnit your/testsuite/directory/

You should get a JUnit XML file at the end of the prove run. If this all works, add it to Ant with

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

Ant documentation for "Exec"

(I believe this is the correct Ant syntax for running an external program, but I'm not an Ant expert.)

瞳孔里扚悲伤 2024-10-08 02:40:27

TAP::Formatter::JUnit 的替代方案是 TAP::Harness::JUnit。例如:

prove --harness TAP::Harness::JUnit t

我发现 TAP::Formatter::JUnit 没有安装在 Windows 上,而 TAP ::Harness::JUnit 似乎在任何地方都可以工作。

An alternative to TAP::Formatter::JUnit is TAP::Harness::JUnit. For example:

prove --harness TAP::Harness::JUnit t

I found TAP::Formatter::JUnit didn't install on Windows, whereas TAP::Harness::JUnit seems to work everywhere.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文