运行 在 Jenkins 上的 Xcode UI 测试永远不会失败
Running Xcodes UITesting on Jenkins never fails a Test
我已经为我在 Xcode 中构建的一个应用程序构建了一个简单的 UITesting 框架。 2 项测试通过,1 项故意失败:
XCTAssertTrue(false)
我正在使用 Jenkins Xcode 插件并正在使用 post 构建的操作:发布 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 中看到的那样,它不会将单个测试用例标记为通过或失败,而是将整个测试套件标记为失败。
有谁知道如何针对单个测试用例标记 pass/fails?
有一个打开的拉取请求来解决这个问题。
这背后的原因是Xcode8改变了UI测试报告的XML方式。 JUnit 插件无法解析此 XML 以生成测试报告。我用过XCPretty mediator that converts Xcode 8 XML report into JUnit supported XML. You can find more details at https://blog.talentica.com/2017/04/04/use-xcode-8-with-jenkins/
我已经为我在 Xcode 中构建的一个应用程序构建了一个简单的 UITesting 框架。 2 项测试通过,1 项故意失败:
XCTAssertTrue(false)
我正在使用 Jenkins Xcode 插件并正在使用 post 构建的操作:发布 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 中看到的那样,它不会将单个测试用例标记为通过或失败,而是将整个测试套件标记为失败。
有谁知道如何针对单个测试用例标记 pass/fails?
有一个打开的拉取请求来解决这个问题。
这背后的原因是Xcode8改变了UI测试报告的XML方式。 JUnit 插件无法解析此 XML 以生成测试报告。我用过XCPretty mediator that converts Xcode 8 XML report into JUnit supported XML. You can find more details at https://blog.talentica.com/2017/04/04/use-xcode-8-with-jenkins/