微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

XCUITest 预测试设置

如何解决XCUITest 预测试设置

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

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

  1. 正在获取 qTest 访问令牌
  2. 从远程配置文件获取 qTest 网址。

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

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

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

我尝试在 UITest Principal Class 中设置 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 方法? 任何帮助将不胜感激。

解决方法

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

关于我的项目的信息:

  • 我的项目名称: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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。