我發現了一個名爲「xctest」的命令行工具,它顯然可以在您的項目中運行單元測試。此可執行住在這裏:如何使用Xcode 5從命令行運行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
謝謝!實際上,我不需要爲DYLD_FRAMEWORK_PATH和DYLD_LIBRARY_PATH設置環境變量。我需要確保在Build/Products/Testing中有正確的xctest bundle位置,而不是Build/Products/Debug。所以我的路徑如下所示:./xctest -XCTest MyTestClass/testMyTestFunction /Users/username/Library/Developer/Xcode/DerivedData/MyApp-abcdefghikjklmn/Build/Products/Testing/MyAppTests.xctest –
感謝關於禁用測試的提示方案。您可以選擇多行並使用空格鍵切換選擇 - 非常有用! – funroll