在并行运行测试时输出UI测试

时间:2017-12-18 14:26:40

标签: ios xctest xcodebuild xcode-ui-testing

我正在尝试使用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

测试执行在两台设备上都能正常运行,但我无法在任何地方看到任何日志消息。即

  

t = 25.90s点击“MenuButton”按钮
  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”StaticText

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

  

在iPhone 8上传递测试用例'Foo.testBar()

  

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

这不是很有用,因为我想知道测试失败的地方。

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

2 个答案:

答案 0 :(得分:2)

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

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

如果你最近做了很多测试,你会看到一些不同的日志;在每次测试运行之前随时删除这些以保持目录清洁并易于导航。

答案 1 :(得分:0)

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

-resultBundlePath resultsDir

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