0

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

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

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

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

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

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

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

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执行该方法?任何帮助,将不胜感激。

4

1 回答 1

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
于 2021-04-09T14:52:32.907 回答