我为我在Xcode中构建的一个应用程序构建了一个简单的UITesting框架。其中2个测试通过,一个故意失败:
XCTAssertTrue(false)
我正在使用Jenkins Xcode插件并使用后构建的操作:发布JUnit测试结果报告。
Jenkins成功启动模拟器并运行所有3个测试。它还成功地解决了日志中的失败问题:
Failing tests:
-[LightAlarmUITests testFailingTest()]
** TEST FAILED **
但是,测试结果分析器(已安装插件)显示所有3个测试都已通过。当我检查test-results / * .xml文件时,我看到以下内容:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<testsuite failures="1" errors="0" hostname="Charlies-MacBook-Pro.local" name="LightAlarmUITests" tests="3" time="21.0" timestamp="2016-12-20T16:24:33.125Z">
<testcase classname="LightAlarmUITests" name="testFailingTest" time="6.372"/>
<testcase classname="LightAlarmUITests" name="testShowSettingsPage" time="7.167"/>
<testcase classname="LightAlarmUITests" name="testShowSoundAlarmsPage" time="7.594"/>
</testsuite>
正如您在xml中看到的那样,它不是将单个测试用例标记为通过或失败,而是标记对整个测试套件的失败。
有没有人知道如何针对个别测试用例标记通过/失败?
答案 0 :(得分:4)
有一个拉取请求可以解决此问题。
答案 1 :(得分:0)
这背后的原因是Xcode 8改变了UI测试报告的XML方式。 JUnit插件无法解析此XML以生成测试报告。我使用了XCPretty介体将Xcode 8 XML报告转换为JUnit支持的XML。您可以在https://blog.talentica.com/2017/04/04/use-xcode-8-with-jenkins/
找到更多详细信息