ven*_*s.w 24 googletest jenkins
我在Jenkins中使用google测试成功运行了我的单元测试,但我不知道如何显示gtest生成的.xml文件.据说gtest满足JUnit格式,所以我设置如下:
但它最终会在建筑物后出现错误.
未找到任何测试报告文件.配置错误?
构建步骤'发布JUnit测试结果报告'将构建结果更改为FAILURE
完成:FAILURE
Mat*_*asF 19
Fraser的答案很好,您需要一些额外的处理来将gtest XML转换为正确的JTest格式.
首先,您要求gtest使用以下结果将结果输出到XML:
mygtestapp --gtest_output=xml:gtestresults.xml
Run Code Online (Sandbox Code Playgroud)
然后在脚本中,您需要添加额外的元素以正确标记跳过的测试.Jenkin的JTest处理器要求跳过的测试包含<skipped>元素,而不仅仅是将状态设置为"notrun":
awk '{ if ($1 == "<testcase" && match($0, "notrun")) print substr($0,0,length($0)-2) "><skipped/></testcase>"; else print $0;}' gtestresults.xml > gtestresults-skipped.xml
mv gtestresults.xml gtestresults.off
Run Code Online (Sandbox Code Playgroud)
如果在Windows批处理文件上运行此命令,请将awk操作放在文件中以避免引号出现问题.awk.progfile:
{ if ($1 == "<testcase" && match($0, "notrun")) print substr($0,0,length($0)-2) "><skipped/></testcase>"; else print $0;}
Run Code Online (Sandbox Code Playgroud)
并在您的bat文件中创建添加:
awk -f awk.progfile gtestresults.xml > gtestresults-skipped.xml
Run Code Online (Sandbox Code Playgroud)
最后,您将JTest处理器指向后构建步骤以读取转换后的XML:
# Publish JUnit Test Result Report
Test Report XMLs: gtestresults-skipped.xml
Run Code Online (Sandbox Code Playgroud)
您是否使用正确的标志(即--gtest_output=xml[:DIRECTORY_PATH\|:FILE_PATH])运行测试可执行文件?
从--help输出:
--gtest_output=xml[:DIRECTORY_PATH\|:FILE_PATH] Generate an XML report in the given directory or with the given file name. FILE_PATH defaults to test_details.xml.