如何在Xcode 5中对每个“构建并运行”动作自动执行单元测试?

mkh04yzy  于 2023-01-21  发布在  其他
关注(0)|答案(3)|浏览(135)

我知道之前也有人问过类似的问题,但是提供的答案并不适用于Xcode 5。我知道TEST_AFTER_BUILD设置在Xcode 5中已经过时(请参见unit testing - RunUnitTests error after Xcode 5 update)。这自然会引出我的问题:既然这个设置已经过时了,我如何在每次构建之后自动化单元测试呢?
非常具体地说:

  • 我的工作区中有几个(超过10个)项目。
  • 当我按下Xcode 5中的RUN按钮(UI左上角)时,我希望为当前方案中的所有依赖项运行单元测试(当然,假设相关项目已经修改)。
  • 此外,如果任何测试失败,则构建和运行操作也会失败。

这在Xcode 4中是有效的;看上面的链接来了解“旧的方法”现在是如何被打破的。
这是一个迁移问题。我不需要一个关于Xcode单元测试的通用(可能已经过时)教程。

iqxoj9l9

iqxoj9l91#

虽然我真的希望有更精简和更好的集成,最接近我得到的修复以上是:

  • 向包含应用的项目添加构建阶段(请记住,我们有一个包含多个项目的工作区,其中大多数项目生成应用所需的库)
  • 构建阶段从xcode内部调用“xcodebuild test”(见下文)

若要添加生成阶段,请打开要添加生成阶段的目标,然后使用菜单项:
editor > add build phase > add run script build phase
调用xcodebuild的自定义脚本如下所示:

cd DIR
xcodebuild -workspace MY_WORKSPACE.xcworkspace -scheme MY_SCHEME -destination ‘platform=iOS Simulator,name=iPhone’ test
...

其中:DIR -包含我的工作区的目录。
... -对每个正在测试的库重复命令调用。
(添加了some info on my blog
这远不是完美的,但由于缺乏更好的东西,它做了一个工作。感谢张贴,如果你有一个更好的解决方案。

9vw9lbht

9vw9lbht2#

我也许有一个有用的链接给你:
http://meandmark.com/blog/2013/09/xcode-5-unit-testing-changes/
特别是以下部分:XCTest
这在Xcode 4中是有效的;看上面的链接来了解"旧的方法"现在是如何被打破的。
你指出了Xcode 5的一个可能的解决方案,即使我不知道这是不是一个正确的答案。也许你应该更近一点地指出你的问题...
你的项目使用的是test scheme吗?你试过配置正确的预操作并检查你的测试设置吗?

ac1kyiln

ac1kyiln3#

从项目导航器中选择项目以打开项目编辑器。在项目编辑器左侧选择项目或目标。单击编辑器顶部的“生成设置”按钮。“生成后测试”生成设置位于“单元测试”集合中。然后将“生成后测试”生成设置设置为“是”。选择“产品”〉“生成对象”〉“生成测试”以生成项目并运行测试。我得到了类似问题here的答案。
请参阅this tutorial了解如何开始自动测试。

相关问题