在JUnit中是否有条件注解来标记要跳过的几个测试用例?

cbeh67ev  于 12个月前  发布在  其他
关注(0)|答案(5)|浏览(98)

据我所知,跳过一个测试用例最简单的方法是删除@Test注解,但是在大量的测试用例上这样做是很麻烦的。我想知道JUnit中是否有任何注解可以有条件地关闭一些测试用例。

bprjcwpo

bprjcwpo1#

很难知道它是您正在寻找的@Ignore注解,还是您实际上想要有条件地关闭某些JUnit测试。有条件地关闭测试用例是使用Assume完成的。
您可以阅读junit 4.5的release notes中的假设
这里还有一个关于stack over flow的很好的线程:Conditionally ignoring tests in JUnit 4

cnwbcb6i

cnwbcb6i2#

正如其他人在这里所说的,“Ignore”忽略了一个测试。
如果你想要一些有条件的东西,看看junit的假设。
http://junit.sourceforge.net/javadoc/org/junit/Assume.html
它的工作原理是查看一个条件,只有在满足该条件时才继续运行测试。如果条件为假,则测试被有效地“忽略”。
如果你把它放在一个helper类中,并从你的许多测试中调用它,你就可以以你想要的方式有效地使用它。希望能帮上忙。

e37o9pze

e37o9pze3#

您可以使用@Ignore注解,将其添加到单个测试或测试类中以将其停用。
如果您需要一些有条件的东西,您将必须创建一个自定义的测试运行器,您可以使用

@RunWith(YourCustomTestRunner.class)

您可以使用它来定义自定义注解,该注解使用表达式语言或引用系统属性来检查是否应该运行测试。但这样的野兽并不存在的盒子。

ymzxtsji

ymzxtsji4#

如果你使用JUnit 4.x,就使用@Ignore。参见here

wyyhbhjk

wyyhbhjk5#

如果条件为false,可以使用assumeTrue(your_condition)跳过测试。在下面的例子中,如果文件不存在,junit将跳过测试。

File file = new File("path/to/your/file");
assumeTrue(file.exists());

相关问题