JUnit 4.8 Category 본문

Programming/Java

JUnit 4.8 Category

halatha 2011. 3. 31. 03:38
http://whiteship.me/?p=12338
//	TestCategoryInterface.java
interface FastTests { /* category marker */ }
interface SlowTests { /* category marker */ }

//	TestCategoryA.java
import static org.junit.Assert.fail;

import org.junit.Test;
import org.junit.experimental.categories.Category;

public class TestCategoryA {
	@Test
		public void a() {
			fail();
		}
	@Category(SlowTests.class)
		@Test
		public void b() {
		}
}

//	TestCategoryB.java
import org.junit.Test;
import org.junit.experimental.categories.Category;

@Category({SlowTests.class, FastTests.class})
public class TestCategoryB {
	@Test
		public void c() {
		}
}

//	TestCategorySlowTestSuite1.java
import org.junit.experimental.categories.Categories;
import org.junit.experimental.categories.Categories.IncludeCategory;
import org.junit.runner.RunWith;
import org.junit.runners.Suite.SuiteClasses;

@RunWith(Categories.class)
@IncludeCategory(SlowTests.class)
@SuiteClasses( { TestCategoryA.class, TestCategoryB.class }) // Note that Category is a kind of Suite
public class TestCategorySlowTestSuite1 {
	// Will run A.b and B.c, but not A.a
}

//	TestCategorySlowTestSuite2.java
import org.junit.experimental.categories.Categories;
import org.junit.experimental.categories.Categories.ExcludeCategory;
import org.junit.experimental.categories.Categories.IncludeCategory;
import org.junit.runner.RunWith;
import org.junit.runners.Suite.SuiteClasses;

@RunWith(Categories.class)
@IncludeCategory(SlowTests.class)
@ExcludeCategory(FastTests.class)
@SuiteClasses( { TestCategoryA.class, TestCategoryB.class }) // Note that Category is a kind of Suite
public class TestCategorySlowTestSuite2 {
	// Will run A.b, but not A.a or B.c
}

$ javac -cp /usr/share/java/junit4.jar:. TestCategory*.java
$ java -cp /usr/share/java/junit4.jar:. org.junit.runner.JUnitCore TestCategoryA
$ java -cp /usr/share/java/junit4.jar:. org.junit.runner.JUnitCore TestCategoryB
$ java -cp /usr/share/java/junit4.jar:. org.junit.runner.JUnitCore TestCategorySlowTestSuite1
$ java -cp /usr/share/java/junit4.jar:. org.junit.runner.JUnitCore TestCategorySlowTestSuite2
Comments