OCUnit:如何在不启动iPhone模拟器的情况下运行测试?

时间:2011-05-29 00:32:27

标签: unit-testing xcode4 ocunit

我正在关注iOS Development Guide: Unit Testing Applications。但是,当我尝试构建(Command + B)LogicTests目标(“设置逻辑测试”的第8步)时,我收到错误:“所选的运行目标对此操作无效。”< / p>

由于我将应用程序目标添加到LogicTests的目标依赖项中,因此我可以使用Command + U运行单元测试,但这也会启动iPhone模拟器。

节省时间和时间资源,是否可以在不启动iPhone模拟器的情况下运行OCUnit测试(逻辑和应用程序测试)?

4 个答案:

答案 0 :(得分:8)

我理解模拟器在单元测试中出现的烦恼。我能找到的最好的补救方法是执行Command + U,然后在启动单元测试时使用Command + H. (Control + H在模拟器出现后隐藏它。)由于它几乎是瞬间出现,这可能是一种有效的方法,使它远离你的视野范围。

答案 1 :(得分:4)

我设法运行我的单元测试,测试我的模型类,而不是按如下方式启动模拟器:

  1. 我没有设置任何捆绑加载器或测试主机构建设置,而是我刚刚将单元测试的.m文件添加到Build Phases Compile Sources。

  2. 然后我使用以下命令从命令行运行单元测试:

    xcodebuild -verbose -target TheElementsUnitTests -configuration Debug -sdk iphonesimulator5.0 clean build
    
  3. 不确定为什么它没有启动模拟器,但它绝对没有!

答案 2 :(得分:2)

这是我在测试行为配置中为生成输出设置的小型AppleScript:

#!/usr/bin/osascript
activate application "Xcode"

命令 + U 后立即返回Xcode。

P.S。我还打开了一个bug,Apple将其标记为副本。所以,他们知道。

答案 3 :(得分:1)

多少时间/资源?我不是专注于减少这些,而是​​专注于扩展您的测试,远远超出Apple最初的“逻辑测试”指南。这些指南是限制性的,并且在Xcode 4之前编写。现在您可以不假思索地编写测试,“这是逻辑测试还是应用程序测试?” - 只测试一切。