【问题标题】:For iOS projects in Xcode, why is the test target set to build by default on Run?对于 Xcode 中的 iOS 项目,为什么测试目标设置为默认在 Run 上构建?
【发布时间】:2015-03-03 18:32:36
【问题描述】:

我们在尝试将测试目标添加到我们继承的项目时遇到了问题。测试目标正在运行,但是由于测试目标中的错误,运行应用程序总是会失败。我们对此感到困惑,最终在方案中发现了一个默认开启的布尔设置:

在图像中,我没有选中它,但是 Run 的测试目标中有一个复选标记。删除复选标记使一切恢复正常。

为什么 Apple 还希望运行您的应用程序来构建您的测试?这使我们认为可能存在我们应该意识到的后果。

【问题讨论】:

  • 这里没有人能告诉你为什么 Apple 设置了默认值。如果您想知道这一点,请询问 Apple。这不是堆栈溢出问题。 - 话虽如此,您的测试不应该处于无法构建它们的状态是有道理的,因此在构建和运行应用程序时构建测试是合理的。毕竟,他们并没有运行测试——他们只是确保他们能够编译。您最好将注意力放在为什么您的测试无法编译而不是通过取消选中该框来避免问题。
  • 好点,我可以把这个问题发给苹果。第二点,测试编译并运行良好。但不要只在运行应用程序时。
  • 但我的意思是:这是错误的,你需要考虑为什么会这样,而不是通过取消选中该复选框来隐藏它。我可以给你一个开始:它可能与你的调试配置和你的 QA 配置之间的差异有关,出于某种原因你在运行时使用它。

标签: ios xcode testing build-process target


【解决方案1】:

从您的屏幕截图来看,问题在于该方案将 QA 配置用于 Run 操作,而将 Debug 配置用于 Test 操作。因此,当您进行测试构建时,事情会以一种方式工作,而当您进行运行构建时,事情会以不同的方式工作。

【讨论】:

  • 同样的事情发生在调试方案上。我只是碰巧用QA截取了屏幕截图。我已经梳理了构建设置,但不明白为什么会发生这种情况。
  • 好吧,当测试无法编译时,会发生什么?我的意思是,你说“一个错误”——那么 what 错误?我的意思是,“为什么会这样”对我来说听起来像是问题中真正有趣的部分,所以我个人认为这就是你应该询问和描述的内容。 :)
猜你喜欢
  • 2016-02-18
  • 1970-01-01
  • 2018-09-02
  • 1970-01-01
  • 2012-10-16
  • 1970-01-01
  • 1970-01-01
  • 2011-03-17
  • 2020-10-29
相关资源
最近更新 更多