问题描述
我有一个可以在各种情况下显示许多弹出窗口的应用程序,我想使用 XCUITest 验证它们的文本。但希望能够毫不费力地为多个文本配置做到这一点。例如,适用于多种语言。
有没有办法通过 .xctestrun 文件或“xcodebuild test-without-building”命令传递参数?以某种方式传递字典,或者我可以在 XCTestCase
开头解析的文件以了解要预测的正确文本值?最好不需要重建项目。
解决方法
找到答案了。
测试主机(和您的 XCTestCase
)可以使用 NSProcessInfo.processInfo.environment
和 NSProcessInfo.processInfo.arguments
查看与测试目标相同的参数。
使用 XCode 中“Test”的方案,您可以添加测试主机本身可以读取的参数和环境变量。测试主机可以通过使用上面提到的进程信息来读取这些。
另一种方法是为您的测试编辑 xctestrun 文件。在其中,您可以将键 CommandLineArguments
添加为流程信息参数的字符串数组,或添加 EnvironmentVariables
作为从键到字符串值的字典。
手动将参数/变量添加到 xctestrun 文件的一种简单方法是首先将它们添加到 XCode 中的测试方案中,查看对 xctestrun 文件的更改,并相应地修改它们。
其他 xctestrun 变量在 https://www.manpagez.com/man/5/xcodebuild.xctestrun/ 中描述