如何使用Xcode 5从命令行运行xctest?

前端之家收集整理的这篇文章主要介绍了如何使用Xcode 5从命令行运行xctest?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我发现一个名为“xctest”的命令行工具显然可以在您的项目中运行单元测试.这个可执行文件存在于这里:
/Applications/Xcode.app/Contents/Developer/usr/bin/xctest

当我尝试在我的xctest包上运行这个可执行文件时,我使用:

$./xctest /Users/myusername/Library/Developer/Xcode/DerivedData/MyApp-abcdefghijklmnop/Build/Products/Debug/MyAppTests.xctest

但是,我得到以下输出

Test Suite '(null)' started at 2013-11-14 21:16:45 +0000
Test Suite '(null)' finished at 2013-11-14 21:16:45 +0000.
Executed 0 tests,with 0 failures (0 unexpected) in 0.000 (0.001) seconds

对于xctest没有任何手册页,据我所知,只能在命令行输入./xctest得到:

Usage: xctest [--test Self | All | None | <TestCaseClassName/testMethodName>] <path of unit to be tested>

特别是,我想在测试类中测试一个特定的方法,这就是为什么我想使用这个xctest命令.

我看到有一种方法可以从命令行运行所有测试,如:

$xcodebuild test -scheme MyApp

这将运行所有的单元测试和正常工作(我看到我的单元测试结果,不同于使用xctest).但我有兴趣能够从命令行运行单个测试方法,例如:

$./xctest --test MyAppTests/testExample  /Users/myusername/Library/Developer/Xcode/DerivedData/MyApp-abcdefghijklmnop/Build/Products/Debug/MyAppTests.xctest

解决方法

尽管使用消息说-XCTest是您需要的参数:
xctest -XCTest MyAppTests/testExample testbundle.xctest

要直接调用xctest进行工作,您可能还需要将DYLD_FRAMEWORK_PATH和DYLD_LIBRARY_PATH设置为您的内置产品目录.一般来说,您需要使用与Xcode相同的参数和环境,您可以通过在其中一个测试中放置断点,通过Xcode运行断点,然后打印出NSProcessInfo processInfo的参数和环境值.

为了避免混淆所有这些注释,您还可以修改Xcode中的方案,以仅运行特定的测试.在产品>方案>编辑方案选择测试操作并展开测试包.您可以使用复选框选择要运行的测试,并且xcodebuild的测试操作将仅运行这些测试.

原文链接:https://www.f2er.com/iOS/336889.html

猜你在找的iOS相关文章