xcodebuild测试 - 无需构建。如何从命令行

时间:2016-12-22 14:15:09

标签: macos xcodebuild

我正在制作macOS单元测试包(服务器软件的集成测试):

xcodebuild -project MyApp.xcodeproj -scheme MyApp.macOS build-for-testing

结果,xcodebuild生成 xctest MyAppTests.xctest xctestrun 文件MyApp.xctestrun

现在我可以在CI服务器上部署 xctest 捆绑包并执行集成测试(默认情况下,目标是发布候选版本的服务器软件)。

xcodebuild test-without-building -xctestrun MyApp.xctestrun

现在我想要定位另一个服务器实例(即来自开发分支) 为此,我可以在MyApp-development.xctestrun密钥下提供另一个 xctestrun 文件TestingEnvironmentVariables以及其他设置。

<key>TestingEnvironmentVariables</key>
<dict>
   <key>com.myapp.ServerKind</key>
   <string>development</string>
   ...
</dict>

在CI服务器上启动:

xcodebuild test-without-building -xctestrun MyApp-development.xctestrun

但保留几个 xctestrun 文件并不是一个好主意。我想拥有default xctestrun 文件,并从命令行覆盖它的设置。

是否可以从命令行在 xctestrun 文件中传递其他设置(或覆盖现有设置)?

谢谢!

1 个答案:

答案 0 :(得分:0)

不确定它是否可以解决您的目的,但是如果我们想在目标的Build设置中覆盖类似User-Defined值的内容,则在使用xctestRun运行测试时,我没有发现直接更改它的方法。因此,我尝试在测试执行之前直接更改通过“ build-for-testing”选项创建的xctest捆绑软件中可用的info.plist,这些东西似乎运行良好。

例如我想在不同的分区上运行测试,所以我做了

defaults write <plist_file_location> PARTITION B1

这似乎可以解决问题

注意:确保<plist_file_location>是绝对路径。提供相对路径最终将在~/Library/Preferences/Info.plist

中创建一个条目