XCUITest 将参数传递给测试

XCUITest pass arguments to the test

我有一个应用程序可以在各种情况下显示许多弹出窗口,我想使用 XCUITest 验证它们的文本。但希望能够毫不费力地为多个文本配置做到这一点。例如多种语言。

有没有办法通过 .xctestrun 文件或通过“xcodebuild test-without-building”命令传递参数?某种方式来传递字典,或者我可以在 XCTestCase 开头解析的文件以了解要预测的正确文本值?最好不需要重建项目。

找到答案了。 测试主机(和您的 XCTestCases)可以使用 NSProcessInfo.processInfo.environmentNSProcessInfo.processInfo.arguments.

查看其与测试目标相同的参数

使用XCode中“测试”的方案,您可以添加测试主机本身可以读取的参数和环境变量。测试主机可以使用上面提到的进程信息来读取这些。

另一种方法是编辑测试的 xctestrun 文件。在其中,您可以将键 CommandLineArguments 添加为进程信息参数的字符串数组,或将 EnvironmentVariables 添加为从键到字符串值的字典。 手动将 arguments/variables 添加到 xctestrun 文件的一种简单方法是首先将它们添加到 XCode 中的测试方案,查看 xctestrun 文件的更改,并相应地修改它们。

其他 xctestrun 变量在 https://www.manpagez.com/man/5/xcodebuild.xctestrun/

中描述