iOStesting:有没有办法跳过testing?
如果function目前被禁用,我不想执行某些testing。 有没有办法“跳过”一个testing(并在控制台上获得适当的反馈)?
像这样的东西:
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. }
右键单击左侧编辑器托盘中的testing符号,可以禁用Xcode运行的XCTests。
你会得到这个菜单,你可以select“禁用”选项。
再次右键点击将允许您重新启用。 另外,正如user @ sethf的答案中所述,您将在.xcscheme
文件中看到当前禁用的testing的条目。
最后,我build议不要禁用testing,并在xcscheme中提交禁用代码。 testing意味着失败,不会因为不方便而变得沉默。
我已经find了一种方法,通过修改我的ui test .xcscheme文件,并在TestableReference下添加一个名为SkippedTests的部分,然后添加带有“标识符”属性的单个Test标签,并添加类名和testing方法。 就像是:
<SkippedTests> <Test Identifier="ClassName/testMethodName" /> </SkippedTests>
希望这可以帮助
另一个可能的解决办法,我发现在一些文章中:前缀你跳过的testing,像“skipped_”
优点:
- XCode不会把它们当作testing
- 您可以使用search轻松find它们
- 您可以再次进行testing,将“skipped_”replace为“”
不幸的是,没有内置的testing用例跳过。 testing用例通过或失败。
这意味着您将不得不自己添加该function – 您可以通过将信息打印到控制台的类别向XCTestCase
(例如XCTestCase.skip
)添加一个函数。 但是,您必须在此之后才能return
以防止其他声明运行。
没有testing用例跳过。 你可以使用if-else块:嵌套和运行/打印你想要的输出。
现在是可能的xcode 8.检查我的post在另一个问题:
从命令行运行iOS应用程序的单个XCTest(UI,Unit)testing用例
这是testing计划的意图。 您可以有针对不同testing情况或需求的不同scheme。 例如,您可能希望创build一个运行所有testing的scheme(完整回归scheme),或者您可能希望select其中的一小部分,以在进行小的更改时对您的应用程序执行快速烟雾testing。 这样,你可以根据你需要做多lesstesting来select不同的scheme。 只要去
Product >> Scheme
在缺less内置testing用例跳过的情况下,带有一些可search模式(如:TEST:SKIP: reason
的cmd-/
Comment Selection
命令可能很简单且有用。 将一个有意义的消息打印到控制台。
func testSomeFeature() { print(":TEST:SKIP: testSomeFeature disabled pending ...") // ... skipped selection .. }
稍后更新someFeature
并取消注释someFeatureTest
。
使用一些search模式:SKIP:
可以允许在源代码和控制台输出中find所有跳过的function和testing。
注意:在Re-Indent
命令之后, cmd-/
'//'样式注释保留了代码Re-Indent
。 / * … * /样式注释可能会失去一些可读性,因为代码缩进不会被保留。