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

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

谢谢!

最佳答案

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

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

defaults write <plist_file_location> PARTITION B1

这似乎可以解决问题

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

关于macos - xcodebuild测试,无需构建。如何从命令行覆盖测试运行参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41285165/

相关文章:

asp.net - 如何让 Mac 和 Windows 用户更改他们的 AD 密码?

python - OS X 终端中 Python 解释器中的制表符补全

ios - Xcode:只能归档一次聚合目标

objective-c - PhoneGap 如何从命令行进行发布构建

python - 使用 Xcode 5 在 OSX Mavericks 上编译 PyGraphviz 1.2 时出错

javascript - macOS 应用程序中的 WKWebView Web 检查器无法呈现和闪烁/闪烁

ios - xcode 构建错误 : project does not contain a scheme

iphone - Xcode 重复符号 _main

ios - 如何运行 iOS 工作区的所有单元测试?

php mkdir() 权限被拒绝 mac