Ios XCUITest预测试设置

Ios XCUITest预测试设置,ios,xcode,ui-automation,xcuitest,qtest,Ios,Xcode,Ui Automation,Xcuitest,Qtest,在运行XCuTest(自动化测试)用例之前,我需要进行预测试配置,一次性设置 测试前设置示例:(这需要在测试周期中执行一次,以下API的输出用于所有测试用例) 获取qTest访问令牌 从远程配置文件获取qTestURL 从文档中,我发现testBundleWillStart方法XCTestObservation协议是进行测试前设置的理想场所 但是 -testBundleWillStart方法未被调用或执行, 下面列出的所有XCTestObservation方法都得到了正确执行 testSuite

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

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

  • 获取
    qTest
    访问令牌
  • 从远程配置文件获取
    qTest
    URL
  • 从文档中,我发现
    testBundleWillStart
    方法
    XCTestObservation
    协议是进行测试前设置的理想场所

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

  • testSuiteWillStart
  • testCaseWillStart
  • testcasedidfish
  • testsuiteddfinish
  • 我尝试在UITest
    info.plist
    中设置
    Principal类
    ,但没有成功,它显示以下错误

    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
    ? 任何帮助都将不胜感激。

    发现问题, 我的项目名称有一个空格,因此用
    \uuu
    替换空格是可行的

    关于我的项目的信息:

    • 我的项目名称:
      我的应用程序
    • 我的项目测试包名称:
      我的应用程序测试
    工作解决方案:(将空格替换为
    字符)

    未工作#2:(将项目名称替换为
    $(产品名称)
    环境变量)

    NSPrincipalClass
    $(产品名称)。SOTestObserver//无法工作
    
    您在代码库中创建了
    TestObserver
    类了吗?我已经解决了问题,问题是我的项目名有空格,现在已经解决了@MikeCollins,参考答案哦,是的,不要用空格做任何事情
    <key>NSPrincipalClass</key>
    <string>My_AppUITests.SOTestObserver</string>
    
    <key>NSPrincipalClass</key>
    <string>My-AppUITests.SOTestObserver</string> //Didn't work
    
    <key>NSPrincipalClass</key>
    <string>$(PRODUCT_NAME).SOTestObserver</string> //Didn't work