【问题标题】:Can I integrate Jenkins and XCTest我可以集成 Jenkins 和 XCTest
【发布时间】:2013-10-17 13:33:26
【问题描述】:

是否可以将 Jenkins 与 XCTest 一起使用?

有一个 ruby​​ 脚本 (OCUnit2JUnit -- https://github.com/ciryon/OCUnit2JUnit) 可以解析 OCUnit 输出并创建 Jenkins 可以解析的 XML 文件。

是否有等效的东西来处理新的 XCTest 输出?

目前,使用 Apple 的持续集成是不可能的。

【问题讨论】:

  • XCTool 支持 XCTest,并且在 Jenkins 集成方面有着出色的历史。
  • 以防万一有人在 2018 年对此进行审查,您应该考虑使用 fastlane 和来自 test_center 插件的 multi_scan 操作来自动化您的测试并为 Jenkins 测试发布者获取 junit 报告。

标签: objective-c jenkins ocunit xctest


【解决方案1】:

这是我在构建机器上安装 ocunit2junit 后在 Jenkins 项目上运行的:

xcodebuild test -scheme <my_scheme> -configuration Debug -sdk iphonesimulator7.0 -destination OS=7.0,name="iPhone Retina (4-inch)" | ocunit2junit

然后,我添加了一个发布 JUnit 测试结果报告作为构建后操作。一开始有点不稳定(只有在没有构建后操作时才创建 xml 文件),但是在我的构建机器上直接启动构建之后,它就可以工作了。

【讨论】:

【解决方案2】:

您需要添加一个 shell 脚本构建阶段。

首先将 ocunit2junit gem 添加到构建机器:

sudo gem install ocunit2junit

然后添加构建阶段的shell脚本,并确保你在执行脚本时在项目目录中:

xcodebuild -workspace yourWorkSpace.xcworkspace -scheme YourTestsScheme -configuration Debug clean test 2>&1 | ocunit2junit

然后确保将发布 JUnit 测试结果构建后操作添加到配置为查找 ocunit2junit 输出的 Jenkins 作业:**/test-reports/*.xml

【讨论】:

    【解决方案3】:

    对我来说它不起作用。 也在项目的 Github 欢迎页面上 没有提到支持 XCTest。所以看来这 不支持

    【讨论】:

      【解决方案4】:

      两种选择:

      1) 将您的 xcodebuild 输出通过管道传输到 xcpretty 并使用他们的 Junit 格式化程序。然后 Jenkins 可以发布它。

      B) 使用 xctool 代替 xcodebuild。 Xctool 内置了 Junit 报告器,您可以为测试指定。

      我们两者都做了,而且它们在 Jenkins 上都能正常工作。

      【讨论】:

      • @piiluke 我无法使用 jenkins 启动模拟器。你是怎么做到的?
      • @HarishGupta 命令行 xcodebuild 拥有运行测试所需的一切。如果您出于某种原因只想启动模拟器本身(没有任何上下文),只需使用 shell 脚本或 AppleScript 运行应用程序。
      • 感谢您的回复!!我的测试用例是需要模拟器运行的 UI 测试用例。所以jenkins在执行测试用例的时候,需要先启动模拟器。
      • @HarishGupta Xcode 通过 xcodebuild 测试为您启动模拟器。您不需要启动模拟器。如果您不使用 xcodebuild 测试并且想要运行自己的自定义进程,那么您可以使用 xcrun simctl 来控制模拟器,但这是一个完全不同的问题。此外,如果您使用 xcodebuild 测试,您可能需要使用 JNLP 而不是 SSH 连接到 jenkins slave,因为早期版本的 Xcode 在代理通过 SSH 时启动 UI 测试时会出现问题。也是一个完全不同的问题。
      【解决方案5】:

      我编写了一个工具,它从 Logs/Test 文件夹中解析 TestSummaries plist 文件并生成 JUnit 报告 xml 文件:(https://github.com/nacuteodor/ProcessTestSummaries)。 生成的报告应该比 xcpretty 更准确。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-10-20
        • 2017-07-22
        • 2019-02-14
        • 1970-01-01
        • 1970-01-01
        • 2015-03-17
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多