JUnit @Ignore 测试注释示例

有时你可能要求不执行某个方法/代码或 测试用例 因为编码没有完成。对于那个特定的测试, JUnit 提供 @忽略 注释以跳过测试。
什么是 JUnit @Ignore 测试注解
@Ignore 测试注释用于忽略特定测试或测试组以跳过构建失败。
@忽略 注释可以在以下两种场景中使用:
- 如果您想忽略测试方法,请使用@Ignore 和@Test 注释。
- 如果要忽略类的所有测试,请在类级别使用@Ignore注释。
您可以在@Ignore注释提供的可选参数中提供禁用测试的原因。
它将帮助其他开发人员在同一段代码上工作,了解“为什么禁用了某个测试?”当该测试的问题修复后,您只需移除即可启用它 @Ignore 注解.
Junit 测试示例 – 忽略
如上面的定义所述,您可以使用@Ignore 注释来忽略一个测试或一组测试。
让我们通过简单的例子和下面给出的场景来理解它:
- 创建一个简单的测试类而不忽略测试。
- 使用@Ignore注释忽略测试方法。
- 以适当的理由使用@Ignore 注释忽略测试方法。
- 使用@Ignore注释忽略所有测试方法。
创建一个简单的测试类而不忽略测试
让我们创建一个简单的 Java 打印两种类型消息的类。
- 第一种方法打印一条简单消息,然后
- 第二种方法打印“hi”消息
JUnit消息.java
package guru99.junit; public class JUnitMessage { private String message; public JUnitMessage(String message) { this.message = message; } public String printMessage(){ System.out.println(message); return message; } public String printHiMessage(){ message="Hi!"+ message; System.out.println(message); return message; } }
Junit测试示例.java
让我们创建一个 JUnit 要测试的测试类 JUnit消息.java。
在本 JUnit 测试类,
- 第一个测试名为“测试JUnitMessage()” 测试上述类的“printMessage()”方法。
- 同样,第二个测试名为“测试JUnitHiMessage”测试“测试JUnit上述类的“HiMessage”。
package guru99.junit; import static org.junit.Assert.assertEquals; import org.junit.Test; public class JunitTestExample { public String message = "Guru99"; JUnitMessage junitMessage = new JUnitMessage(message); @Test public void testJUnitMessage() { System.out.println("Junit Message is printing"); assertEquals(message, junitMessage.printMessage()); } @Test public void testJUnitHiMessage() { message="Hi!" +message; System.out.println("Junit Hi Message is printing "); assertEquals(message, junitMessage.printHiMessage()); } }
测试运行器.java
让我们创建一个测试运行器类来执行 JunitTestExample.java
package guru99.junit; import org.junit.runner.JUnitCore; import org.junit.runner.Result; import org.junit.runner.notification.Failure; public class TestRunner { public static void main(String[] args) { Result result = JUnitCore.runClasses(JunitTestExample.class); for (Failure failure : result.getFailures()) { System.out.println(failure.toString()); } System.out.println("Result=="+result.wasSuccessful()); } }
输出:
在控制台上打印语句:
Junit Hi 消息正在打印
嗨!Guru99
Junit 消息正在打印
Guru99
使用@Ignore注释忽略测试方法
让我们创建忽略测试来禁用上述示例中的测试。为此,您需要在要跳过的方法中使用 @Ignore。
让我们测试一下JUnitJunitTestExample.java 的 Message()
Junit测试示例.java
package guru99.junit; import static org.junit.Assert.assertEquals; import org.junit.Ignore; import org.junit.Test; public class JunitTestExample { public String message = "Guru99"; JUnitMessage junitMessage = new JUnitMessage(message); @Ignore @Test public void testJUnitMessage() { System.out.println("Junit Message is printing "); assertEquals(message, junitMessage.printMessage()); } @Test public void testJUnitHiMessage() { message="Hi!" +message; System.out.println("Junit Hi Message is printing "); assertEquals(message, junitMessage.printHiMessage()); } }
输出:
让我们执行并验证上述示例的输出。
下面的输出显示一项测试被跳过(禁用),如下所示:
在控制台上打印语句:
Junit Hi 消息正在打印
嗨!Guru99
使用 @ignore 注释和条件
让我们以如何忽略测试为例,并定义忽略的原因。如上所述,要提供原因,您可以在 @Ignore 注释中提供一个可选参数,您可以在其中提供原因语句。
Junit测试示例.java
package guru99.junit; import static org.junit.Assert.assertEquals; import org.junit.Ignore; import org.junit.Test; public class JunitTestExample { public String message = "Guru99"; JUnitMessage junitMessage = new JUnitMessage(message); @Ignore("not yet ready , Please ignore.") @Test public void testJUnitMessage() { System.out.println("Junit Message is printing "); assertEquals(message, junitMessage.printMessage()); } @Test public void testJUnitHiMessage() { message="Hi!" +message; System.out.println("Junit Hi Message is printing "); assertEquals(message, junitMessage.printHiMessage()); } }
输出:
同上。
使用@Ignore注释忽略所有测试方法。
如上所述,要忽略类中的所有测试,您需要在类级别使用 @Ignore 注释。
让我们修改上面的例子来了解如何忽略所有测试:
package guru99.junit; import static org.junit.Assert.assertEquals; import org.junit.Ignore; import org.junit.Test; @Ignore public class JunitTestExample { public String message = "Guru99"; JUnitMessage junitMessage = new JUnitMessage(message); @Test public void testJUnitMessage() { System.out.println("Junit Message is printing "); assertEquals(message, junitMessage.printMessage()); } @Test public void testJUnitHiMessage() { message="Hi!" +message; System.out.println("Junit Hi Message is printing "); assertEquals(message, junitMessage.printHiMessage()); } }
输出:
在控制台上打印语句:
由于两个测试都通过在类级别使用 @Ignore 跳过,因此控制台上不会打印任何语句。



