提问者:小点点

XCUITest预测试设置


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

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

  1. 提取Qtest访问令牌
  2. 从远程配置文件提取QtestURL。

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

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

  1. TestSuiteWillStart
  2. TestCaseWillStart
  3. TestCasedIdFinish
  4. TestSuitedIdFinish

我尝试在UITestinfo.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方法?如有任何帮助,我们将不胜感激。


共1个答案

匿名用户

发现问题时,我的项目名称中有一个空格,因此用_替换空格起作用。

有关我的项目的信息:

  • 我的项目名称:我的应用程序
  • 我的项目测试包名称: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