我正在关注iOS Development Guide: Unit Testing Applications。但是,当我尝试构建(Command + B)LogicTests
目标(“设置逻辑测试”的第8步)时,我收到错误:“所选的运行目标对此操作无效。”< / p>
由于我将应用程序目标添加到LogicTests
的目标依赖项中,因此我可以使用Command + U运行单元测试,但这也会启动iPhone模拟器。
节省时间和时间资源,是否可以在不启动iPhone模拟器的情况下运行OCUnit测试(逻辑和应用程序测试)?
答案 0 :(得分:8)
我理解模拟器在单元测试中出现的烦恼。我能找到的最好的补救方法是执行Command + U,然后在启动单元测试时使用Command + H. (Control + H在模拟器出现后隐藏它。)由于它几乎是瞬间出现,这可能是一种有效的方法,使它远离你的视野范围。
答案 1 :(得分:4)
我设法运行我的单元测试,测试我的模型类,而不是按如下方式启动模拟器:
我没有设置任何捆绑加载器或测试主机构建设置,而是我刚刚将单元测试的.m文件添加到Build Phases Compile Sources。
然后我使用以下命令从命令行运行单元测试:
xcodebuild -verbose -target TheElementsUnitTests -configuration Debug -sdk iphonesimulator5.0 clean build
不确定为什么它没有启动模拟器,但它绝对没有!
答案 2 :(得分:2)
这是我在测试行为配置中为生成输出设置的小型AppleScript:
#!/usr/bin/osascript
activate application "Xcode"
按命令 + U 后立即返回Xcode。
P.S。我还打开了一个bug,Apple将其标记为副本。所以,他们知道。
答案 3 :(得分:1)
多少时间/资源?我不是专注于减少这些,而是专注于扩展您的测试,远远超出Apple最初的“逻辑测试”指南。这些指南是限制性的,并且在Xcode 4之前编写。现在您可以不假思索地编写测试,“这是逻辑测试还是应用程序测试?” - 只测试一切。