xcodebuild测试 - 无需构建。如何从命令行覆盖测试运行参数

问题描述 投票:3回答:1

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

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

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

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

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文件中的其他设置(或覆盖现有设置)?

谢谢!

macos xcodebuild
1个回答
0
投票

不确定它是否能解决您的目的,但如果我们想在目标的Build设置中覆盖类似用户定义值的内容,我在使用xctestRun运行测试时没有找到直接改变它的方法。因此,我尝试直接更改在测试执行之前使用“build-for-testing”选项创建的xctest包中可用的info.plist,并且事情似乎运行良好。

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

defaults write <plist_file_location> PARTITION B1

这似乎可以解决问题

注意:确保<plist_file_location>是绝对路径。提供相对路径最终会在~/Library/Preferences/Info.plist中创建一个条目

© www.soinside.com 2019 - 2024. All rights reserved.