【问题标题】:Output of UI tests when running tests in parallell并行运行测试时的 UI 测试输出
【发布时间】:2018-05-31 22:02:06
【问题描述】:

我正在尝试使用 xcodebuild 从命令行并行运行 UI 测试。

我使用的命令是:

xcodebuild 
     -verbose 
     -workspace "MyWorkspace.xcworkspace" 
     -scheme "User Interface Tests" 
     -sdk iphonesimulator 
     -destination 'platform=iOS Simulator,id=5193368C-B000-4ED1-99F6-E23F7BAB9F69' 
     -destination 'platform=iOS Simulator,id=9B751E0D-8268-4DDF-ADAC-CBF2508F4CCC'
     test

测试执行在两台设备上都运行良好,但我在任何地方都看不到任何日志消息。 IE。

t = 25.90s 点击“菜单按钮”按钮
t = 25.90s 等待 no.test.myapp 空闲
t = 26.14s 找到“MenuButton”按钮
t = 26.35s 等待 no.test.myapp 空闲
t = 26.39s 合成事件
t = 26.46s 等待 no.test.myapp 空闲
t = 27.09s 点击“FooBar”静态文本

当我只有一个目的地时,我可以看到测试的日志/输出(从 Xcode 运行测试时可以看到相同的输出)。但是,当我添加第二个目的地时,显示的唯一信息是:

测试用例'Foo.testBar() 在 iPhone 8 上通过'

测试用例“Foo.testBar()在 iPhone 6s 上失败”。

这不是很有帮助,因为我想知道它在测试中失败的地方。

此输出是否记录在任何地方?理想情况下,我希望查看运行测试的每台设备的分步日志。

【问题讨论】:

  • 我使用 bluepill (github.com/linkedin/bluepill) 来管理我的 GUI 测试,它处理日志消息(即使在并行运行中)。你可以使用它(强烈推荐)或者我猜,看看代码看看它是如何做到的。
  • 谢谢。我会考虑使用 Bluebill!
  • 我开发了一个基于测试结果构建 HTML 报告的工具。它在并行运行测试时起作用。 github.com/TitouanVanBelle/XCUITestHTMLReport

标签: ios xctest xcodebuild xcode-ui-testing


【解决方案1】:

您可以通过将此标志添加到您的 xcodebuild 命令来控制您的 TestSummaries.plist(您可以将其提供给 xchtmlreport)的位置:

-resultBundlePath resultsDir

您应该在每次测试运行之间删除该文件夹。如果您要并行运行,您可能需要为每个 xcodebuild 调用提供单独的结果路径。

【讨论】:

    【解决方案2】:

    您的派生数据文件夹中会有一个.xcactivitylog,通常位于以下路径:

    ~/Library/Developer/Xcode/DerivedData/<your-app-name>/Logs/Test/
    

    如果您最近进行了大量测试运行,您会看到一些不同的日志;在每次测试运行之前随意删除这些,以保持目录干净且易于浏览。

    【讨论】:

    • 谢谢。对于像我这样的 Xcode 和 iOS 新手,要打开 .xcactivitylog 文件,我使用了这个答案:stackoverflow.com/questions/13861658/…
    • @CF256 我相信您的评论应该是答案的一部分!起初我看到了答案,但错过了评论......然后我继续搜索并再次来到这里!
    猜你喜欢
    • 1970-01-01
    • 2014-03-27
    • 1970-01-01
    • 2015-02-11
    • 1970-01-01
    • 2014-08-07
    • 1970-01-01
    • 1970-01-01
    • 2019-04-03
    相关资源
    最近更新 更多