我想通过命令行(xcodebuild)将命令行参数传递给我的iOS测试。我在XCode上寻找相当于此设置的内容:
简单地将参数传递给xcodebuild并不起作用,例如:
xcodebuild -verbose test -workspace theworkspace.xcworkspace -scheme 'thescheme' -destination 'platform=iOS Simulator,name=iPhone 7' --argument=value
这个问题与xcodebuild pass arguments to application on iOS类似,但该问题的解决方案并不令人满意。
答案 0 :(得分:1)
我无法找到“简单”的解决方案。因此,我将测试分为3个步骤:
1.运行xcodebuild build-for-testing
。它将在派生数据中生成xctestrun
文件,其中包含启动参数列表
2.在这里添加你想要的启动参数
3.运行xcodebuild test-without-building -xctestrun <%path_to_file_here%>
我为它编写了脚本。它仍然需要一些改进,所以在关闭时间我会分享它的最终形式。
答案 1 :(得分:1)
要添加到@ManWithBear的答案中,我最终在脚本中这样做:
#Remove previous command line arguments
/usr/libexec/PlistBuddy -c "Delete DetoxTestRunner:CommandLineArguments" "$TESTRUN" || true
#Add an empty array
/usr/libexec/PlistBuddy -c "Add DetoxTestRunner:CommandLineArguments array" "$TESTRUN"
#Add script arguments as launch arguments of the test runner app
for i in $*; do
/usr/libexec/PlistBuddy -c "Add DetoxTestRunner:CommandLineArguments: string '$i'" "$TESTRUN"
done
在上面的代码中,我将传递给脚本的所有参数作为启动参数添加到测试器应用程序。 DetoxTestRunner
是测试方案/目标的名称。