我正在关注iOS 开发指南:单元测试应用程序。但是,当我尝试构建 (Command+B)LogicTests
目标(“设置逻辑测试”的第 8 步)时,我收到错误消息:“选定的运行目标对此操作无效。”
由于我将应用程序目标添加到LogicTests
的目标依赖项中,因此我可以使用 Command+U 运行单元测试,但这也会启动 iPhone 模拟器。
为了节省时间和资源,是否可以在不启动 iPhone 模拟器的情况下运行 OCUnit 测试(逻辑和应用程序测试)?
我正在关注iOS 开发指南:单元测试应用程序。但是,当我尝试构建 (Command+B)LogicTests
目标(“设置逻辑测试”的第 8 步)时,我收到错误消息:“选定的运行目标对此操作无效。”
由于我将应用程序目标添加到LogicTests
的目标依赖项中,因此我可以使用 Command+U 运行单元测试,但这也会启动 iPhone 模拟器。
为了节省时间和资源,是否可以在不启动 iPhone 模拟器的情况下运行 OCUnit 测试(逻辑和应用程序测试)?
我理解模拟器在单元测试中弹出的烦恼。我能找到的最好的补救方法是在启动单元测试时执行 Command + U,然后是 Command + H。(Control + H 会在模拟器出现后将其隐藏。)由于它几乎是瞬间出现的,因此这可能是一种将其移出您的视野范围的有效方法。
我已经设法运行我的单元测试来测试我的模型类,而无需启动模拟器,如下所示:
我没有设置任何捆绑加载器或测试主机构建设置,而是将我正在单元测试的 .m 文件添加到构建阶段编译源中。
然后我使用以下命令从命令行运行单元测试:
xcodebuild -verbose -target TheElementsUnitTests -configuration Debug -sdk iphonesimulator5.0 clean build
不太确定为什么这没有启动模拟器,但绝对没有!
这是我设置为在测试行为配置中生成输出运行的一个小 AppleScript:
#!/usr/bin/osascript
activate application "Xcode"
按下command + U后,它会立即恢复 Xcode 。
PS我还打开了一个错误,Apple将其标记为重复。所以,他们很清楚。
多少时间/资源?我不会专注于减少这些,而是专注于扩展您的测试,使其远远超出 Apple 最初的“逻辑测试”指南。这些指南是有限制的,并且是在 Xcode 4 之前编写的。现在您可以编写测试而不用思考“这是逻辑测试还是应用程序测试?” - 只是测试一切。