【问题标题】:Running Xcodes UITesting on Jenkins never fails a Test在 Jenkins 上运行 Xcode UI 测试永远不会失败
【发布时间】:2017-04-05 01:22:54
【问题描述】:

我为我在 Xcode 中构建的一个应用程序构建了一个简单的 UITesting 框架。 2 项测试通过,1 项故意失败:

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 中看到的,它不会将单个测试用例标记为通过或失败,而是将整个测试套件标记为失败。

有人知道如何针对单个测试用例标记通过/失败吗?

【问题讨论】:

    标签: ios xcode jenkins junit xcode-ui-testing


    【解决方案1】:

    有一个拉取请求可以解决这个问题。

    https://github.com/jenkinsci/xcode-plugin/pull/75

    【讨论】:

    • 感谢 Skycamefalling。它说我必须等待一个小时才能提供赏金,所以我会回来的。我已经花了几天的时间来解决这个问题,非常感谢您的帮助:)
    • 没问题!我们也一直在研究同样的问题。
    • 我现在已经停止使用 Jenkins 和 UITesting。错误地通过每个测试的错误可能是 Jenkins 可以做的最糟糕的事情之一,恕我直言。几个月来没有解决修复该错误的拉取请求可能是第二糟糕的事情。
    • 这已被合并到master中。
    【解决方案2】:

    这背后的原因是 Xcode 8 改变了 UI 测试报告的 XML 方式。 JUnit 插件无法解析此 XML 以生成测试报告。我使用XCPretty 调解器将 Xcode 8 XML 报告转换为 JUnit 支持的 XML。您可以在https://blog.talentica.com/2017/04/04/use-xcode-8-with-jenkins/找到更多详细信息

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-08-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-08-31
      • 2015-03-26
      • 2014-09-10
      相关资源
      最近更新 更多