| package org.junit.experimental.categories; |
| |
| import static org.junit.Assert.assertEquals; |
| |
| import java.util.Arrays; |
| |
| import org.junit.Assert; |
| import org.junit.Test; |
| import org.junit.experimental.categories.Categories.IncludeCategory; |
| import org.junit.runner.JUnitCore; |
| import org.junit.runner.Result; |
| import org.junit.runner.RunWith; |
| import org.junit.runners.Parameterized; |
| import org.junit.runners.Parameterized.Parameters; |
| import org.junit.runners.Suite.SuiteClasses; |
| |
| public class CategoriesAndParameterizedTest { |
| public static class Token { |
| |
| } |
| |
| @RunWith(Parameterized.class) |
| public static class ParameterizedTestWithoutCategory { |
| @Parameters |
| public static Iterable<String> getParameters() { |
| return Arrays.asList("first", "second"); |
| } |
| |
| @Parameterized.Parameter |
| public String value; |
| |
| @Test |
| public void testSomething() { |
| Assert.assertTrue(true); |
| } |
| } |
| |
| @Category(Token.class) |
| public static class TestThatAvoidsNoTestRemainsException { |
| @Test |
| public void testSomething() { |
| Assert.assertTrue(true); |
| } |
| } |
| |
| @RunWith(Categories.class) |
| @IncludeCategory(Token.class) |
| @SuiteClasses({ TestThatAvoidsNoTestRemainsException.class, |
| ParameterizedTestWithoutCategory.class }) |
| public static class SuiteWithParameterizedTestWithoutCategory { |
| } |
| |
| @Test |
| public void doesNotRunTestsWithoutCategory() { |
| Result result = new JUnitCore() |
| .run(SuiteWithParameterizedTestWithoutCategory.class); |
| assertEquals(1, result.getRunCount()); |
| assertEquals(0, result.getFailureCount()); |
| } |
| |
| @RunWith(Parameterized.class) |
| @Category(Token.class) |
| public static class ParameterizedTestWithCategory { |
| @Parameters |
| public static Iterable<String> getParameters() { |
| return Arrays.asList("first", "second"); |
| } |
| |
| @Parameterized.Parameter |
| public String value; |
| |
| @Test |
| public void testSomething() { |
| Assert.assertTrue(true); |
| } |
| } |
| |
| @RunWith(Categories.class) |
| @IncludeCategory(Token.class) |
| @SuiteClasses({ ParameterizedTestWithCategory.class }) |
| public static class SuiteWithParameterizedTestWithCategory { |
| } |
| |
| @Test |
| public void runsTestsWithoutCategory() { |
| Result result = new JUnitCore() |
| .run(SuiteWithParameterizedTestWithCategory.class); |
| assertEquals(2, result.getRunCount()); |
| assertEquals(0, result.getFailureCount()); |
| } |
| |
| @RunWith(Parameterized.class) |
| public static class ParameterizedTestWithMethodWithCategory { |
| @Parameters |
| public static Iterable<String> getParameters() { |
| return Arrays.asList("first", "second"); |
| } |
| |
| @Parameterized.Parameter |
| public String value; |
| |
| @Test |
| @Category(Token.class) |
| public void testSomething() { |
| Assert.assertTrue(true); |
| } |
| |
| @Test |
| public void testThatIsNotExecuted() { |
| Assert.assertTrue(true); |
| } |
| } |
| |
| @RunWith(Categories.class) |
| @IncludeCategory(Token.class) |
| @SuiteClasses({ ParameterizedTestWithMethodWithCategory.class }) |
| public static class SuiteWithParameterizedTestWithMethodWithCategory { |
| } |
| |
| @Test |
| public void runsTestMethodWithCategory() { |
| Result result = new JUnitCore() |
| .run(SuiteWithParameterizedTestWithMethodWithCategory.class); |
| assertEquals(2, result.getRunCount()); |
| assertEquals(0, result.getFailureCount()); |
| } |
| } |