我正在开发一个脚本,该脚本生成Jenkins接受的JUnit XML格式的测试结果。
我在StackOverFlow中阅读了有关此主题的一些答案:JUnit XML format specification that Hudson supports 和Spec. for JUnit XML Output但这些都没有谈到“testsuites”属性或选项的细节。
我想在“testsuites”下的所有“testsuite”中显示“testcase”的总数,失败的“testcase”总数和跳过的“testcase”总数。
即<testsuites *something to add here to include the info demanded*>...</testsuites>
有没有办法实现这个目标?
任何帮助将不胜感激!
答案 0 :(得分:3)
我认为这些信息将由Jenkins自动计算。如果不是 - 不要费心添加它,它无论如何都不会显示。
以下是有关如何调试此类事情的有用提示:创建一个“触摸”文件的作业(让我们将其命名为 jUnitReport )(让我们称之为 jUnit.xml )在shell / batch构建步骤中;添加“发布JUnit测试结果报告”并在“测试报告XML”编辑框中指定 jUnit.xml 。运行一次作业 - 这将创建其工作区。现在放置要在工作区中测试的有效 jUnit.xml 。再次运行作业并检查测试结果的外观。
重要的是不要删除“触摸”步骤 - 否则Jenkins会将测试结果视为失效并且无法构建。
您现在可以使用 jUnit.xml 进行操作而无需运行实际测试,并检查它如何影响Jenkins显示的结果。
答案 1 :(得分:1)
我在python中完成了这个。所以我可以在python中告诉你。 导入一个名为xmlrunner的包
import xmlrunner
class ABC(unittest.TestCase)
asserts/tests..
...
if __name__ == "__main__":
suite = unittest.TestLoader().loadTestsFromTestCase(ABC)
xmlrunner.XMLTestRunner().run(suite)
现在在你的jenkins机器上转到Post-build Actions 单击Publish JUnit测试结果报告旁边的复选框 并提供xml文件的路径名。 (** /的test.xml)
你应该保存 - 建立并检查你的详细结果。 希望它有所帮助。
答案 2 :(得分:1)
不确定您是否找到了您要找的东西。但以下示例适用于我。
<testsuites tests="38" failures="2" disabled="0" errors="0" time="10.898" name="AllTests">
<!-- Add test suite and other stuff here-->
</testsuites>
这是Jenkins支持的内容。不确定Hudson是否相同。 https://svn.jenkins-ci.org/trunk/hudson/dtkit/dtkit-format/dtkit-junit-model/src/main/resources/com/thalesgroup/dtkit/junit/model/xsd/junit-4.xsd
答案 3 :(得分:0)
我正在寻找类似的东西,并且大多数情况下不可能使用默认的junit插件,它不会解析这些信息
您可以查看此插件的源代码https://github.com/jenkinsci/jenkins/blob/master/core/src/main/java/hudson/tasks/junit/SuiteResult.java#L125。
你可以分叉junit插件并扩展它。