在Xcode 4之前,构建曾经在我的项目的根文件夹中创建.我再也找不到了.
我在哪里可以找到构建文件夹?
我找到了一个名为"xctest"的命令行工具,它显然可以在你的项目中运行单元测试.此可执行文件位于此处
/Applications/Xcode.app/Contents/Developer/usr/bin/xctest
Run Code Online (Sandbox Code Playgroud)
当我尝试在我的xctest包上运行此可执行文件时,我正在使用:
$ ./xctest /Users/myusername/Library/Developer/Xcode/DerivedData/MyApp-abcdefghijklmnop/Build/Products/Debug/MyAppTests.xctest
Run Code Online (Sandbox Code Playgroud)
但是,我得到以下输出:
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
Run Code Online (Sandbox Code Playgroud)
据我所知,xctest没有手册页,但在命令行输入./xctest会产生:
Usage: xctest [--test Self | All | None | <TestCaseClassName/testMethodName>] <path of unit to be tested>
Run Code Online (Sandbox Code Playgroud)
特别是,我希望能够在测试类中测试一个特定的方法,这就是为什么我想使用这个xctest命令.
我确实看到有一种方法可以从命令行运行所有测试,如:
$ xcodebuild test -scheme MyApp
Run Code Online (Sandbox Code Playgroud)
这将运行所有单元测试并正常工作(我看到我的单元测试结果,与使用xctest时不同).但我对能够从命令行运行单个测试方法感兴趣,例如:
$ ./xctest --test MyAppTests/testExample /Users/myusername/Library/Developer/Xcode/DerivedData/MyApp-abcdefghijklmnop/Build/Products/Debug/MyAppTests.xctest
Run Code Online (Sandbox Code Playgroud) 我很感兴趣如何找到在我的应用程序的UI测试期间创建的屏幕截图的位置.我想了解Fastlane Snapshot如何抓取此屏幕截图.经过几个小时的研究,我无法找到这些截图的位置.
如果当前禁用该功能,我不想执行某些测试.有没有办法"跳过"测试(并在控制台上获得适当的反馈)?
像这样的东西:
func testSomething() {
if !isEnabled(feature: Feature) {
skip("Test skipped, feature \(feature.name) is currently disabled.")
}
// actual test code with assertions here, but not run if skip above called.
}
Run Code Online (Sandbox Code Playgroud) 我可以使用以下命令运行所有单元测试:
xcodebuild test -workspace Project.xcworkspace -scheme Scheme -sdk iphonesimulator7.0 -destination platform='iOS Simulator',OS=7.0,name='iPhone Retina (4-inch)'
Run Code Online (Sandbox Code Playgroud)
有没有什么我可以传递到这个来运行单独的单元测试/类,就像你可以使用Xcode UI一样?
干杯.
当我运行我的XCTests时,我想自动重新运行一次任何失败的集成(单元/ ui)测试.这可能吗?
这将在同一测试中完成,而不必在我的测试或测试的任何部分再次点击"运行".我正在从命令行运行所有测试.
我正在进行使用网络调用服务器的UI测试.如果存在严重的服务器问题,则测试将/应该失败并报告错误.但是,如果它只是请求的临时问题,那么自动重新运行测试并查看它是否通过将会很好.此外,随着Xcode UI测试的当前状态,有一些偶然的问题,它会因为一个不明原因而崩溃,并且自动重新运行测试以查看它是否第二次通过将是很好的.
如果它可以输出发生的事情,那将是特别好的,即"测试失败第一次,因为失败得到刷新快照,但第二次通过"
xcode ×4
xctest ×3
ios ×2
build ×1
fastlane ×1
objective-c ×1
swift ×1
unit-testing ×1
xcode5 ×1