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: reasoncmd-/ Comment Selection命令可能很简单且有用。 将一个有意义的消息打印到控制台。

 func testSomeFeature() { print(":TEST:SKIP: testSomeFeature disabled pending ...") // ... skipped selection .. } 

稍后更新someFeature并取消注释someFeatureTest

使用一些search模式:SKIP:可以允许在源代码和控制台输出中find所有跳过的function和testing。

注意:在Re-Indent命令之后, cmd-/ '//'样式注释保留了代码Re-Indent / * … * /样式注释可能会失去一些可读性,因为代码缩进不会被保留。