@Ignore_JUnit - Ignore Test

@Ignore 用法很简单, 如果你的测试用例还没有准备好而不想被执行, 又不想删掉或注释掉, 可以使用 @Ignore 标注来忽略测试。

  • 方法一旦用 @Ignore 注解了将不会被执行.
  • 如果一个类用 @Ignore 注解了 他下面的所有测试方法将不会被执行.

看个应用

Create a Class

  • Create a java class to be tested say MessageUtil.java in C:\ > JUNIT_WORKSPACE
/*
* This class prints the given message on console.
*/
public class MessageUtil {

   private String message;

   //Constructor
   //@param message to be printed
   public MessageUtil(String message){
      this.message = message;
   }

   // prints the message
   public String printMessage(){
      System.out.println(message);
      return message;
   }   

   // add "Hi!" to the message
   public String salutationMessage(){
      message = "Hi!" + message;
      System.out.println(message);
      return message;
   }
}

Create Test Case Class

  • Create a java test class say TestJunit.java.
  • Add a test methods testPrintMessage(),testSalutationMessage() to your test class.
  • Add an Annotaion @Ignore to method testPrintMessage().

Create a java class file name TestJunit.java in C:\ > JUNIT_WORKSPACE

import org.junit.Test;
import org.junit.Ignore;
import static org.junit.Assert.assertEquals;

public class TestJunit {

   String message = "Robert";
   MessageUtil messageUtil = new MessageUtil(message);

   @Ignore
   @Test
   public void testPrintMessage() {
      System.out.println("Inside testPrintMessage()");
      message = "Robert";
      assertEquals(message,messageUtil.printMessage());
   }

   @Test
   public void testSalutationMessage() {
      System.out.println("Inside testSalutationMessage()");
      message = "Hi!" + "Robert";
      assertEquals(message,messageUtil.salutationMessage());
   }
}

Create Test Runner Class

Create a java class file name TestRunner.java in C:\ > JUNIT_WORKSPACE to execute Test case(s)

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(TestJunit.class);
      for (Failure failure : result.getFailures()) {
         System.out.println(failure.toString());
      }
      System.out.println(result.wasSuccessful());
   }
}

Compile the MessageUtil, Test case and Test Runner classes using javac

C:\JUNIT_WORKSPACE>javac MessageUtil.java TestJunit.java TestRunner.java

Now run the Test Runner which will not run testPrintMessage() test case defined in provided Test Case class.

C:\JUNIT_WORKSPACE>java TestRunner

Verify the output. testPrintMessage() test case is not tested.

Inside testSalutationMessage()
Hi!Robert
true

Now update TestJunit in C:\ > JUNIT_WORKSPACE to ignore all test cases. Add @Ignore at class level

import org.junit.Test;
import org.junit.Ignore;
import static org.junit.Assert.assertEquals;

@Ignore
public class TestJunit {

   String message = "Robert";
   MessageUtil messageUtil = new MessageUtil(message);

   @Test
   public void testPrintMessage() {
      System.out.println("Inside testPrintMessage()");
      message = "Robert";
      assertEquals(message,messageUtil.printMessage());
   }

   @Test
   public void testSalutationMessage() {
      System.out.println("Inside testSalutationMessage()");
      message = "Hi!" + "Robert";
      assertEquals(message,messageUtil.salutationMessage());
   }
}

Compile the Test case using javac

C:\JUNIT_WORKSPACE>javac TestJunit.java

Keep your Test Runner unchnaged as follows

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(TestJunit.class);
      for (Failure failure : result.getFailures()) {
         System.out.println(failure.toString());
      }
      System.out.println(result.wasSuccessful());
   }
}

Now run the Test Runner which will not run any test case defined in provided Test Case class.

C:\JUNIT_WORKSPACE>java TestRunner

Verify the output. No test case is tested.

true
时间: 2024-08-27 15:51:38

@Ignore_JUnit - Ignore Test的相关文章

QT的父子Widget之间消息的传递(如果子类没有accept或ignore该事件,则该事件会被传递给其父亲)

以前我一直以为:在父widget上摆一个子widget后,当click子widget时:只会进入到子widget的相关事件处理函数中,比如进入到mousePressEvent()中, 而不会进入到父widget的对应事件处理函数中.毕竟:click的是子widget,其遮挡住了父widget,从而父widget接收不到这个事件.然而事实真的是这个样子吗? 我做了一个测试: 在一个QWidget上建了一个QLabel.而后实现父QWidget的mousePressEvent(), 然后跟一下发现:

Android - 抑制lint的Android XML的警告:tools:ignore

抑制lint的Android XML的警告:tools:ignore 本文地址:http://blog.csdn.net/caroline_wendy Android的XML经常会出现警告,对于一个良好的程序,应该认真对待所有的警告. 除非我们可以确认警告,才可以排除. 显示所有警告的方法:Analyze -> Inspect Code; 就可以检查出所有的警告: 抑制警告使用: tools:ignore. // 忽略全部 xmlns:tools="http://schemas.andro

JUnit(>4.0)@BeforeClass、@Before、@Test、@After、@AfterClass、@Ignore

JUnit 4 开始使用 Java 5 中的注解(annotation),常用的几个 annotation 介绍: @BeforeClass:针对所有测试,只执行一次,且必须为static void @Before:初始化方法 @Test:测试方法,在这里可以测试期望异常和超时时间 @After:释放资源 @AfterClass:针对所有测试,只执行一次,且必须为static void @Ignore:忽略的测试方法 一个单元测试用例执行顺序为: @BeforeClass –> @Before

git ignore

我最初将整个项目push到远程仓库,但是项目代码里面有大文件,从而传输太费时间了. 看网上的说法,可以通过ignore文件达到不提交某些文件的效果,尝试了一下发现不行. 后来尝试清除缓存 $ git rm -r --cached . 但是还是没有效果,原因是我之前已经commit了,push的时候之前的版本怎么样都要提交,于是我重新clone下来项目,然后填好ignore文件,最后add commit push,终于达到了想要的效果. 这个方法肯定不高明.

Android Studio git ignore

# Built application files *.apk *.ap_ # Files for the Dalvik VM *.dex # Java class files *.class # Generated files bin/ gen/ # Gradle files .gradle/ build/ # Local configuration file (sdk path, etc) local.properties # Proguard folder generated by Ecl

INSERT IGNORE 与INSERT INTO的区别,以及replace的用法

INSERT IGNORE 与INSERT INTO的区别就是INSERT IGNORE会忽略数据库中已经存在 的数据,如果数据库没有数据,就插入新的数据,如果有数据的话就跳过这条数据. 这样就可以保留数据库中已经存在数据,达到在间隙中插入数据的目的. 在MySQL中进行条件插入数据时,可能会用到以下语句,现小结一下.我们先建一个简单的表来作为测试: CREATE TABLE `books` ( `id` INT(11) NOT NULL AUTO_INCREMENT, `name` VARCH

cin.ignore()函数的用法

cin.ignore(a,ch)方法是从输入流(cin)中提取字符,提取的字符被忽略(ignore),不被使用.每抛弃一个字符,它都要计数和比较字符:如果计数值达到a或者被抛弃的字符是ch,则cin.ignore()函数执行终止:否则,它继续等待.它的一个常用功能就是用来清除以回车结束的输入缓冲区的内容,消除上一次输入对下一次输入的影响.比如可以这么用:cin.ignore(1024,'\n'),通常把第一个参数设置得足够大,这样实际上总是只有第二个参数'\n'起作用,所以这一句就是把回车(包括

该怎么清缓存呢?fflush clear ignore

1)fflush 编译器规定,fflush用于刷新输出流,对于输入流没有规定,也就是说 fflush(stdin) 的结果是未知的. 这也就是在 VC下写C程序时,fflush(stdin)有效,VC下写C++程序时,fflush(stdin)无效的原因. 2)VC下写C++程序时,清空缓存使用 clear 和 ignore 1 //重置输入流的状态(从错误中恢复) 2 std::cin.clear(); 3 4 //清空输入流,直到指定的字符(默认为 EOF) 5 std::cin.ignor

Linux命令行下svn ignore忽略文件或文件夹用法

Linux命令行下svn ignore忽略文件或文件夹用法 一.忽略单个目录 1.忽略文件夹 假如目录oa.youxi.com是从svn checkout出来的,在服务器本地目录添加了material,但是不希望把material加入版本控制,因此我们需要忽略掉这个目录首先使用svn status命令查看当前状态[[email protected] oa.youxi.com]# svn status? htdocs/admin/adv/material 添加需要忽略的目录,貌似必须得进入该目录之