XCUITest 预测试设置
Posted
技术标签:
【中文标题】XCUITest 预测试设置【英文标题】:XCUITest pre-testing setup 【发布时间】:2021-04-09 12:58:45 【问题描述】:我需要进行预测试配置,在运行 XCUITest(自动化测试)案例之前进行一次设置,
预测试设置示例:(测试周期需要执行一次,以下 API 的输出用于所有测试用例)
-
获取
qTest
访问令牌
从远程配置文件中获取qTest
URL。
从文档中我发现XCTestObservation
协议的testBundleWillStart
方法是进行预测试设置的理想场所。
但是
-testBundleWillStart
方法没有被调用或执行,
XCTestObservation
下面列出的所有方法都得到正确执行。
testSuiteWillStart
testCaseWillStart
testCaseDidFinish
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,参考答案***.com/a/67023389/3733561
【参考方案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
【讨论】:
哦,是的,不要为任何东西使用空格?以上是关于XCUITest 预测试设置的主要内容,如果未能解决你的问题,请参考以下文章