当前位置: 首页 > 知识库问答 >
问题:

XCUITest预测试设置

鞠隐水
2023-03-14

我需要进行测试前配置,在运行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个答案

应和悦
2023-03-14

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

有关我的项目的信息:

  • 我的项目名称:我的应用程序
  • 我的项目测试包名称: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
 类似资料:
  • 对于 iOS 自动化,Appium 依赖苹果提供的系统框架。对于 iOS 9.2 及更低版本,苹果唯一的自动化技术被称为UIAutomation,它运行在 “Instruments” 中。从 iOS 10 开始,苹果已经完全删除了 UIAutomation 工具,因此 Appium 不可能按照以前的方式进行测试。同时,苹果推出了一款名为 XCUITest 的新型自动化技术,从 iOS 9.3 到

  • 我对如何设计junit测试用例以使其更具可读性和可维护性感兴趣。问题是——在我所有的junit测试用例中,我都有一些预定义的步骤要执行,如下所示 问题是,如果要添加新的测试用例,我需要确保新的测试用例调用mockObjectX()、mockObjectY()、mockObjectZ()。有没有更好的方法(更易于维护的方法)来设计我的测试用例,以便添加新的测试用例变得更简单? 我认为不能使用@之前,

  • 很可惜,苹果官方的 XCTest 框架本身并不支持 TouchAction 接口实现的 W3C 标准。尽管如此,XCTest 提供了非常丰富的手势操作,这些操作都是 iOS 平台独有的。你可以在 1.6.4-beta 版本的 Appium 中开始使用这些手势操作。 需要特别注意的是目前XCTest和WDA正在不断优化改变的阶段,这意味着所有 mobile: * 的命令可能会在没任何通知的情况下就被

  • 主要内容:1. 运行时异常,2. 检查异常在本教程中,我们将演示如何使用TestNG expectedExceptions来测试代码中的预期异常抛出。 创建一个名称为 ExpectedExceptionTest 的 Maven 工程,其结构如下所示 - 1. 运行时异常 此示例显示如何测试运行时异常。 如果方法抛出一个运行时异常 — ,它会获得通过。 创建一个测试文件:TestRuntime.java ,其代码如下所示 - 运行上面代码,