首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将Xcode 11测试结果.xcresult转换为JUnit?

将Xcode 11测试结果.xcresult转换为JUnit?
EN

Stack Overflow用户
提问于 2020-04-30 13:37:27
回答 1查看 4.7K关注 0票数 14

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

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

然后在Jenkins中使用JUnit文件来:

  • 显示测试结果
  • 向团队成员发送关于失败的电子邮件。
  • 保存结果及其参数的存档。

但是现在似乎没有可用的命令行工具来解析包含:

  • 测试结果
  • 代码覆盖
  • 截图(对这些不太感兴趣)

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

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

代码语言:javascript
复制
xcodebuild -scheme Debug -workspace MyApp.xcworkspace -destination 'platform=iOS Simulator,OS=12.4,name=iPhone Xs Max' test -testPlan UnitTests

我还看到了随Xcode 11一起安装的命令行工具,它解决了部分难题:

代码语言:javascript
复制
$ xcrun xcresulttool --path ResultBundle.xcresult --format json > ResultBundle.json

但这只会解析一层

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

摘要:如何将.xcresult转换为JUnit文件?

:我看到苹果通过调用,包括了对.xcresult格式的详细描述:

代码语言:javascript
复制
xcrun xcresulttool formatDescription

苹果这样做是为了让第三方库能够自动处理未来对.xcresult格式的更改,因此生成JUnit文件的解决方案很好,生成JUnit文件并以某种方式使用"xcrun“的解决方案更好,因为这是未来的证据:)

EN

回答 1

Stack Overflow用户

发布于 2020-07-08 18:12:11

我使用works工具将结果转换为JUnit格式,这对我是有效的。但我不使用testPlan。

也许我的命令,我在我的詹金斯CI中使用的帮助您进一步

代码语言:javascript
复制
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)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61524687

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档