【问题标题】:XCUITest pre-testing setupXCUITest 预测试设置
【发布时间】:2021-04-09 12:58:45
【问题描述】:

我需要进行预测试配置,在运行 XCUITest(自动化测试)案例之前进行一次设置,

预测试设置示例:(测试周期需要执行一次,以下 API 的输出用于所有测试用例)

  1. 获取qTest访问令牌
  2. 从远程配置文件中获取qTest URL。

从文档中我发现XCTestObservation 协议的testBundleWillStart 方法是进行预测试设置的理想场所。

但是 -testBundleWillStart 方法没有被调用或执行XCTestObservation 下面列出的所有方法都得到正确执行。

  1. testSuiteWillStart
  2. testCaseWillStart
  3. testCaseDidFinish
  4. testSuiteDidFinish

我尝试在 UITest info.plist 中设置 Principal Class 但没有运气,它显示以下错误

Test bundle Info.plist at /var/containers/Bundle/Application/BEAFB0C2-43D5-4C90-B50F-B1FF1A16BC23/MyAppUITests-Runner.app/PlugIns/MyAppUITests.xctest/Info.plist specified MyAppUItests.TestObserver for NSPrincipalClass, but no class matching that name was found.

我怎样才能让方法testBundleWillStart被执行? 任何帮助将不胜感激。

【问题讨论】:

  • 您是否在代码库中创建了TestObserver 类?
  • 我已经发现了问题,问题是我的项目名称有空格,现在已修复。 @MikeCollins,参考答案stackoverflow.com/a/67023389/3733561

标签: ios xcode ui-automation xcuitest qtest


【解决方案1】:

发现问题, 我的项目名称有一个空格,所以用_ 替换空格是可行的。

关于我的项目的信息:

  • 我的项目名称:My App
  • 我的项目测试包名称:My-AppUITests

工作解决方案:(用_ 字符替换空格)

<key>NSPrincipalClass</key>
<string>My_AppUITests.SOTestObserver</string>

让我也分享一些看似正确但仍然不起作用的事情:

无效 #1:(用 - 字符替换空格)

<key>NSPrincipalClass</key>
<string>My-AppUITests.SOTestObserver</string> //Didn't work

无效 #2:(将项目名称替换为 $(PRODUCT_NAME) 环境变量)

<key>NSPrincipalClass</key>
<string>$(PRODUCT_NAME).SOTestObserver</string> //Didn't work

【讨论】:

  • 哦,是的,不要为任何东西使用空格?
猜你喜欢
  • 2018-03-25
  • 1970-01-01
  • 2019-12-16
  • 2021-05-25
  • 1970-01-01
  • 2018-09-07
  • 2020-07-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多