gpt4 book ai didi

ios - 将 Xcode 11 testresult .xcresult 转换为 JUnit?

转载 作者:行者123 更新时间:2023-12-01 10:34:36 25 4
gpt4 key购买 nike

自 Xcode 11 以来,自动测试(单元测试或 UITests)生成的输出文件已变为 .xcresult(请参见下面的屏幕截图)。

enter image description here

在 Xcode 11 之前,在 test 文件夹中创建了一个 TestSummaries.plist 文件,用于构建 JUnit 文件。

然后在 Jenkins CI 中使用 JUnit 文件来:
- 显示测试结果
- 发送电子邮件通知团队成员失败。
- 保存结果及其参数的存档

但现在似乎没有可用的命令行工具来解析包含以下内容的 .xcresult 文件:
- 试验结果
- 代码覆盖率
- 截图(对这些不太感兴趣)

我试过 xcpretty:https://github.com/xcpretty/xcpretty但是那个只是说已经执行了0个测试,而实际上执行了68个测试

不确定这是否重要,但我使用 .xctestplan 和下面的 xcodebuild 命令

xcodebuild -scheme Debug -workspace MyApp.xcworkspace -destination 'platform=iOS Simulator,OS=12.4,name=iPhone Xs Max' test -testPlan UnitTests

我还看到 Xcode 11 附带了一个命令行工具,它解决了部分难题:
$ xcrun xcresulttool --path ResultBundle.xcresult --format json > ResultBundle.json

但这只会解析一层

我也看过 xcparse ,并且它们似乎在正确的轨道上,例如,它解决了解析 .xcresult 文件并获取代码覆盖率和屏幕截图,但它们不知何故不包括 .xcresult 最重要的部分(对于我们公司而言)是测试的结果。就像 47 成功 4 失败,这些失败,那部分。

总结:如何将 .xcresult 转换为 JUnit 文件?

奖金 :我看到Apple通过调用包含了.xcresult格式的详细描述:
xcrun xcresulttool formatDescription

Apple 这样做是为了让第三方库可以自动处理 future 对 .xcresult 格式的更改,因此生成 JUnit 文件的解决方案很好,生成 JUnit 文件并以某种方式与“xcrun xcresulttool formatDescription”一起使用的解决方案是更好,因为它是 future 的证明:)

最佳答案

我使用 xcpretty 工具将结果转换为 JUnit 格式,这对我有用。但我不使用测试计划。
也许我在 jenkins CI 中使用的命令可以帮助您进一步

xcodebuild -derivedDataPath DerivedData -scheme "<MyShema>" -destination 'platform=iOS Simulator,name=iPad Pro (9.7-inch),OS=13.5' test | /usr/local/bin/xcpretty --report junit
之后报告保存在 build/reports/junit.xml .
编辑:
我在这个网站上找到了 https://www.raywenderlich.com/2841-beginning-automated-testing-with-xcode-part-2-2一个有趣的工具,用于转换为 junit 测试结果。 ( https://github.com/ciryon/OCUnit2JUnit)

关于ios - 将 Xcode 11 testresult .xcresult 转换为 JUnit?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61524687/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com