如何运行 Perl 测试并将结果与 Ant 中的 JUnit 报告合并?
我想在 Ant 下运行 Perl 测试,并以与 Ant 生成的格式类似的格式生成 XML 输出 < a href="http://ant.apache.org/manual/Tasks/junit.html" rel="nofollow">JUnit 任务。
我意识到格式化程序 TAP::Formatter::JUnit 和 TAP::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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
如果您已经使用
Test::More
等进行了测试,那么使用prove --formatter TAP::Formatter::JUnit
是最简单的方法。您无需更改任何 Perl 测试或代码,即可获得基于 Java 的工具使用的 JUnit 输出。我们将这种设置与 Hudson 一起使用,这样我们就可以跟踪我们的测试,并根据需要从 Hudson 的内置工具获得良好的测试失败报告,而无需进行大量扭曲。我们的构建是基于
make
的,但这是与您的设置唯一真正的区别。这意味着您应该能够将
prove
作为外部任务运行并获得好处,而无需显着更改 Ant 工具(如果不清楚的话)。根据您安装的 Perl,您可能有也可能没有
证明
。运行看看您拥有哪个版本 - 3.00 或更高版本将有
prove
;理想情况下,您应该安装 3.23 以获得最佳功能:这将安装最新的 Test::Harness、TAP::Formatter::JUnit 以及所有必需的先决条件。尝试外部过程,
您应该在
prove
运行结束时获得一个 JUnit XML 文件。如果这一切都有效,请将其添加到 Ant 中“Exec”的 Ant 文档
(我相信这是运行的正确 Ant 语法一个外部程序,但我不是 Ant 专家。)
If you already have tests using
Test::More
or the like, then usingprove --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
. Runto see which version you've got - 3.00 or better will have
prove
; ideally, you should install 3.23 to get the best functionality:This installs the most recent Test::Harness, TAP::Formatter::JUnit, and all needed prerequisites. Try out the external process with
You should get a JUnit XML file at the end of the
prove
run. If this all works, add it to Ant withAnt documentation for "Exec"
(I believe this is the correct Ant syntax for running an external program, but I'm not an Ant expert.)
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
isTAP::Harness::JUnit
. For example:prove --harness TAP::Harness::JUnit t
I found
TAP::Formatter::JUnit
didn't install on Windows, whereasTAP::Harness::JUnit
seems to work everywhere.