从一个类中使用 xctest 框架运行测试类

Posted

技术标签:

【中文标题】从一个类中使用 xctest 框架运行测试类【英文标题】:run test classes using xctest framework from a class 【发布时间】:2016-06-09 14:48:22 【问题描述】:

我遇到了一个问题。我想为我的应用程序做一个 ui 测试。

我已经编写了六个测试类,其中包括我的测试用例。

我可以使用

运行我的测试用例
"command U" or the clicking in the run button.

但我不想这样做。

我想使用代码运行我的测试类,我的意思是使用

xctest because after complete my execution, i have to do another task.

谁能举个例子,我如何使用类文件中的 xctest 编码运行我的测试类。

我不想使用 shell 脚本或 jenkins,我想要使用 xctest 框架。

【问题讨论】:

后续任务是什么? @JonReid ,完成我的任务后,我必须发送电子邮件和其他任务 【参考方案1】:

使用 xcodebuild 运行测试 xcodebuild 命令行工具就像 Xcode IDE 一样驱动测试。使用动作测试运行 xcodebuild 并使用 -destination 参数指定不同的目标。例如,要在本地 OS X “My Mac 64 Bit”上测试 MyApp,请使用以下命令指定目标和架构:

> xcodebuild test -project MyAppProject.xcodeproj -scheme MyApp -destination 'platform=OS X,arch=x86_64'

如果您插入了支持开发的设备,则可以通过名称或 ID 调用它们。例如,如果您连接了一个名为“Development iPod touch”的 iPod touch,您想在上面测试您的代码,您可以使用以下命令:

> xcodebuild test -project MyAppProject.xcodeproj -scheme MyApp -destination 'platform=ios,name=Development iPod touch'

测试也可以在模拟器中运行。使用模拟器轻松针对不同的外形尺寸、操作系统和操作系统版本。模拟器目标可以通过名称或 ID 指定。例如:

> xcodebuild test -project MyAppProject.xcodeproj -scheme MyApp -destination 'platform=Simulator,name=iPhone,OS=8.1'

Source

【讨论】:

我如何在我的 ios 应用中做到这一点? 实际上这可以运行 xcode build 命令以使用 swift 在 ios 项目中运行吗? 是的,可以运行 xcodebuild 来运行 swift 项目。只需打开终端,转到项目文件夹,运行上面的命令。【参考方案2】:
    编辑您的 Xcode 方案。 点击“测试”旁边的三角显示以显示更多选项。 选择“后操作” 单击“+”以添加要在测试完成后运行的任何操作。

如您所见,您的选择是运行脚本或发送简单的电子邮件。有关配置操作的更多信息,请参阅https://michele.io/the-project-file-part-2/

【讨论】:

感谢您的帮助@Jon Reid 到目前为止我已经做到了,但是我在附加文件和添加多个用户方面遇到了问题,这就是我尝试另一种方式的原因。如果我在方案中添加多个用户,例如:user1@abc.com, user2@abc.com 它不会发送电子邮件。 你能就这些问题提供任何建议或链接吗?

以上是关于从一个类中使用 xctest 框架运行测试类的主要内容,如果未能解决你的问题,请参考以下文章

在 swift Xctest 中测试 Firebase 类

无法从 XCTest 访问应用程序代码

从 XCTest 覆盖中忽略视图控制器

XCTest 不会从我的目标应用程序链接类

在类扩展中声明的单元测试方法

Cucumber + XCTest 集成?