测试方案的不同构建配置

10

有没有一种方法可以在调试版本中运行单元测试,在发布版本中运行性能测试,而不需要手动选择和运行单个方案?

我有一个单元测试计划和一个性能测试计划。在单元测试计划的测试配置中,我选择了调试构建,在性能测试计划中我选择了发布构建。如果我分别运行每个方案,我将分别获得调试构建和发布构建。

如果我创建另一个同时运行这两个方案的方案,那么这个新方案将具有自己的构建配置。如果我为这个新方案设置调试构建配置,那么我的性能测试也会获得调试构建。

2个回答

1
你可以使用不同的测试集并包含/排除你想要的内容。
我的意思是创建自己的自定义测试目标(bundle)并使用Xcode Test Navigator。
例如,创建一个MyUnitBundleTests目标和一个MyPerformanceBundleTests目标。它们将是两个独立的测试“bundles”,在其中选择包括/排除类、方法等。
测试导航器显示项目中包含的测试bundle及其相关联的类、方法等的分层列表。
你可以通过在测试导航器列表中按Control键单击并从快捷菜单中选择启用或禁用来有选择地启用和禁用测试bundle、类和方法,从而启用或禁用方案中的这些项。 Xcode快速入门测试

Xcode测试 - 运行测试和查看结果

有几种交互方式可以运行测试。Xcode根据方案中包含和启用的测试目标来运行测试。测试导航器允许您直接控制在方案中包括、启用或禁用哪些测试目标、类和方法,而无需使用方案编辑器。

enter image description here

我不确定这是否是您想要的,但这是我能想到的唯一选项,可用于测试而无需进入方案编辑器。


我不确定这会如何帮助。我目前有两个目标 - 一个用于性能,一个用于测试。我可以运行其中任意一个,但不能同时运行两个。测试导航器显示未选择的目标为灰色,并且我必须手动切换到它才能运行它。 - rid
嗨。当你说“不需要手动选择和运行单个方案”时,我以为你指的是Scheme编辑器。 - Edison

1

可能有一种方法可以实现所需的行为,但更多是一种技巧。

我看到的主要问题是方案中测试操作的所需构建配置。由于构建配置适用于方案中的所有目标,因此您需要找到一种方法来欺骗Xcode以使用调试和发布配置构建您的目标。也就是说,这是想法:

  1. 将您的目标的发布配置导出到xcconfig文件中(xcodebuild -scheme“ schemeName”-showBuildSettings >> release.xcconfig,并确保它仅包含发布设置)
  2. 为性能测试创建另一个构建相同源文件的目标
  3. 将此新目标的调试配置设置为上述发布配置的xcconfig文件(这基本上是我们愚弄Xcode的部分)
  4. 将原始目标和新创建的目标添加到方案的构建操作中,并添加测试包(假设它们驻留在单独的测试包中)
  5. 选择测试操作的调试构建配置。

如果测试您的方案,则现在应同时在调试和发布中构建源代码,并在调试构建配置上运行单元测试,在发布配置上运行性能测试。

安装过程有点脆弱,因为你需要将新的源文件添加到两个目标中。不过,你应该能够使用 Ruby 脚本和 xcodeproj gem 自动化这个过程。
希望这能有所帮助。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接