¤È¤¢¤ë½¸ÃÄ¤Î¥×¥í¥°¥é¥à¥á¥â

Sample Code

Category Marker Class

package org.sample.junit.category;
public class FastTests { /* category marker */ }
package org.sample.junit.category;
public class SlowTests { /* category marker */ }

Test Class

package org.sample.junit;

import static org.junit.Assert.*;
import static org.hamcrest.CoreMatchers.*;

import org.junit.Test;
import org.junit.experimental.categories.Category;
import org.junit.experimental.runners.Enclosed;
import org.junit.runner.RunWith;
import org.sample.junit.category.FastTests;
import org.sample.junit.category.SlowTests;

@RunWith(Enclosed.class)
public class SampleCategoryTest {

	public static class TestClass1{
		@Category(FastTests.class)
		@Test
		public void fastTest() {
			System.out.println("TestClass1.fastTest");
			int actual = 1;
			int expect = 1;
			assertThat(actual, is(expect));
		}

		@Category(SlowTests.class)
		@Test
		public void slowTest() {
			System.out.println("TestClass1.slowTest");
			int actual = 1;
			int expect = 1;
			assertThat(actual, is(expect));
		}
		@Test
		public void test() {
			System.out.println("TestClass1.test");
			int actual = 1;
			int expect = 1;
			assertThat(actual, is(expect));
		}
	}

	@Category({FastTests.class, SlowTests.class})
	public static class TestClass2{
		
		@Test
		public void test() {
			System.out.println("TestClass2.test");
			int actual = 1;
			int expect = 1;
			assertThat(actual, is(expect));
		}
	}
}

Category Suite

package org.sample.junit;

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;
import org.sample.junit.category.FastTests;
import org.sample.junit.category.SlowTests;

@RunWith(Categories.class)
//testÂоݤò»ØÄê
@IncludeCategory(FastTests.class)
//testÂоݤ«¤é½ü³°
@ExcludeCategory(SlowTests.class)
//¼Â¹Ô¤¹¤ë¥Æ¥¹¥È¥¯¥é¥¹¤ò»ØÄê
@SuiteClasses({
	/* Âоݥƥ¹¥È¥¯¥é¥¹ */
	SampleCategoryTest.class,
})
public class CategoryTests {
}

Result

[Category Suite]¤ò¼Â¹Ô»þ¤Î·ë²Ì

CategoryTests¤ò¥Æ¥¹¥È

¡¡[FastTest]¤Ë¥«¥Æ¥´¥é¥¤¥º¤µ¤ì¤¿¥Æ¥¹¥È¤Î¤ß¤ò¼Â»Ü¡£
¡¡¤¿¤À¤·[SlowTest]¤Ë¥«¥Æ¥´¥é¥¤¥º¤µ¤ì¤¿¥Æ¥¹¥È(¥Æ¥¹¥È¥±¡¼¥¹¡¢¥Æ¥¹¥È¥¯¥é¥¹)¤ò½ü³°¤¹¤ë¡£
¡¡¤½¤Î¤¿¤á¡¢[SlowTest]¤·¤Æ¤¤¤Î¤¢¤ë[TestClass2]¤Î¥Æ¥¹¥È¤Ï̵»ë¤µ¤ì¤ë¡£
TestClass1.fastTest

[@IncludeCategory(FastTests.class)]¤ò¥³¥á¥ó¥È¥¢¥¦¥È¡£([@ExcludeCategory(SlowTests.class)]¤Î¤ß»ØÄê)

TestClass1.test
TestClass1.fastTest

[@ExcludeCategory(SlowTests.class)]¤ò¥³¥á¥ó¥È¥¢¥¦¥È¡£([@IncludeCategory(FastTests.class)]¤Î¤ß»ØÄê)

¡¡[FastTest]¤Ë¥«¥Æ¥´¥é¥¤¥º¤µ¤ì¤¿¥Æ¥¹¥È¤Î¤ß¤ò¼Â»Ü¡£
¡¡[FastTest]»ØÄê¤Î¤¢¤ë¥Æ¥¹¥È¥±¡¼¥¹[TestClass1.fastTest],¥Æ¥¹¥È¥¯¥é¥¹[TestClass2]¤¬¼Â¹Ô¤µ¤ì¤ë
TestClass1.fastTest
TestClass2.test

[@IncludeCategory(FastTests.class)], [@ExcludeCategory(SlowTests.class)]¤ò¥³¥á¥ó¥È¥¢¥¦¥È(¥Æ¥¹¥ÈÂоݤλØÄê¤Ê¤·)

¡¡Á´¤Æ¤Î¥Æ¥¹¥È¥±¡¼¥¹¤¬¼Â¹Ô¤µ¤ì¤ë¡£
TestClass1.slowTest
TestClass1.test
TestClass1.fastTest
TestClass2.test
¥¿¥°

¥³¥á¥ó¥È¤ò¤«¤¯


¡Öhttp://¡×¤ò´Þ¤àÅê¹Æ¤Ï¶Ø»ß¤µ¤ì¤Æ¤¤¤Þ¤¹¡£

ÍøÍѵ¬Ìó¤ò¤´³Îǧ¤Î¤¦¤¨¤´µ­Æþ²¼¤µ¤¤

¥á¥ó¥Ð¡¼¤Î¤ßÊÔ½¸¤Ç¤­¤Þ¤¹