gpt4 book ai didi

java - 使用 Ant 和 Junit 执行单个测试方法

转载 作者:行者123 更新时间:2023-12-01 11:30:16 28 4
gpt4 key购买 nike

我正在寻找一种以符合 Jenkins 的方式运行单个 Junit 测试方法(不是整个测试,只是通过“-D”参数提供给 ant 的单个测试方法)的方法。有很多不同的教程(其中大多数都进入完全不同的方向),但我找不到真正使用 Junit4.* 的教程。 (例如,不再有 TestCase(String methodName) 构造函数...)

我可以通过 ant 使用“-D”选项解析参数,并且可以使用

启动单个测试用例
Request requestCase = Request.method(Class.forName("testmethod"), Parameter.testCase);
Result result = new JUnitCore().run(requestCase);

但可能由于我通常在 TestSuites 中运行所有内容,Jenkins 单独运行单个测试,但不注册已运行的测试。

tl;dr:有没有一种好的方法可以使用 junit 运行单个测试方法(而不是整个类),以便 Jenkins 可以正确获取结果?

最佳答案

该代码不会生成 Jenkin 的 junit 插件通常用来发布结果的 xml 结果文件。可以使用 AntXmlRunListener 来做到这一点

AntXmlRunListener xmlListener = new AntXmlRunListener();
FileOutputStream reportStream = new FileOutputStream(reportDir + "/TEST-" + className + ".xml");
xmlListener.setOutputStream(reportStream);

JUnitCore junit = new JUnitCore();
junit.addListener(xmlListener);

// ...
// junit.run(requestCase);

xmlListener.setOutputStream(null);
reportStream.close();

Here您会找到使用类似方法的其他答案。

在本地测试它,它应该生成一个包含结果的 xml 文件。

现在,在您的 Jenkins 作业中,您需要使用适当的正则表达式(类似于 **/TEST-*.xml)添加构建后操作 Publish junit results 到捕获结果。

关于java - 使用 Ant 和 Junit 执行单个测试方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30460232/

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