aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/java_tools/junitrunner
diff options
context:
space:
mode:
Diffstat (limited to 'src/java_tools/junitrunner')
-rw-r--r--src/java_tools/junitrunner/java/com/google/testing/junit/runner/junit4/JUnit4TestModelBuilder.java13
-rw-r--r--src/java_tools/junitrunner/javatests/com/google/testing/junit/runner/junit4/JUnit4TestModelBuilderTest.java25
2 files changed, 30 insertions, 8 deletions
diff --git a/src/java_tools/junitrunner/java/com/google/testing/junit/runner/junit4/JUnit4TestModelBuilder.java b/src/java_tools/junitrunner/java/com/google/testing/junit/runner/junit4/JUnit4TestModelBuilder.java
index 56d57c1d86..75199cf144 100644
--- a/src/java_tools/junitrunner/java/com/google/testing/junit/runner/junit4/JUnit4TestModelBuilder.java
+++ b/src/java_tools/junitrunner/java/com/google/testing/junit/runner/junit4/JUnit4TestModelBuilder.java
@@ -17,12 +17,10 @@ package com.google.testing.junit.runner.junit4;
import com.google.testing.junit.runner.model.TestSuiteModel;
import com.google.testing.junit.runner.model.TestSuiteModel.Builder;
import com.google.testing.junit.runner.util.Supplier;
-
-import org.junit.runner.Description;
-import org.junit.runner.Request;
-
import javax.inject.Inject;
import javax.inject.Singleton;
+import org.junit.runner.Description;
+import org.junit.runner.Request;
/**
* Builds a {@link TestSuiteModel} for JUnit4 tests.
@@ -49,9 +47,12 @@ class JUnit4TestModelBuilder implements Supplier<TestSuiteModel> {
@Override
public TestSuiteModel get() {
Description root = request.getRunner().getDescription();
+ // A test class annotated with @Ignore effectively has no test methods,
+ // which is what isSuite() tests for.
if (!root.isSuite()) {
- throw new IllegalArgumentException("Top test must be a suite");
+ return builder.build(suiteName);
+ } else {
+ return builder.build(suiteName, root);
}
- return builder.build(suiteName, root);
}
}
diff --git a/src/java_tools/junitrunner/javatests/com/google/testing/junit/runner/junit4/JUnit4TestModelBuilderTest.java b/src/java_tools/junitrunner/javatests/com/google/testing/junit/runner/junit4/JUnit4TestModelBuilderTest.java
index b409163617..c1a4efbd00 100644
--- a/src/java_tools/junitrunner/javatests/com/google/testing/junit/runner/junit4/JUnit4TestModelBuilderTest.java
+++ b/src/java_tools/junitrunner/javatests/com/google/testing/junit/runner/junit4/JUnit4TestModelBuilderTest.java
@@ -32,6 +32,7 @@ import com.google.testing.junit.runner.sharding.testing.StubShardingEnvironment;
import com.google.testing.junit.runner.util.FakeTicker;
import com.google.testing.junit.runner.util.Ticker;
import java.util.List;
+import org.junit.Ignore;
import org.junit.Test;
import org.junit.runner.Description;
import org.junit.runner.Request;
@@ -92,6 +93,18 @@ public class JUnit4TestModelBuilderTest {
}
@Test
+ public void testCreateModel_topLevelIgnore() throws Exception {
+ Class<?> testClass = SampleTestCaseWithTopLevelIgnore.class;
+ Request request = Request.classWithoutSuiteMethod(testClass);
+ String testClassName = testClass.getCanonicalName();
+ JUnit4TestModelBuilder modelBuilder =
+ builder(request, testClassName, stubShardingEnvironment, null, xmlResultWriter);
+
+ TestSuiteModel testSuiteModel = modelBuilder.get();
+ assertThat(testSuiteModel.getNumTestCases()).isEqualTo(0);
+ }
+
+ @Test
public void testCreateModel_singleTestClass() throws Exception {
Class<?> testClass = SampleTestCaseWithTwoTests.class;
Request request = Request.classWithoutSuiteMethod(testClass);
@@ -140,7 +153,6 @@ public class JUnit4TestModelBuilderTest {
assertThat(model.getNumTestCases()).isEqualTo(1);
}
-
/** Sample test case with two tests. */
@RunWith(JUnit4.class)
public static class SampleTestCaseWithTwoTests {
@@ -153,6 +165,16 @@ public class JUnit4TestModelBuilderTest {
}
}
+ /** Sample test case with top level @Ignore */
+ @Ignore
+ @RunWith(JUnit4.class)
+ public static class SampleTestCaseWithTopLevelIgnore {
+ @Test
+ public void testOne() {}
+
+ @Test
+ public void testTwo() {}
+ }
/** Sample test case with one test. */
@RunWith(JUnit4.class)
@@ -162,7 +184,6 @@ public class JUnit4TestModelBuilderTest {
}
}
-
/** Sample suite with one test. */
@RunWith(Suite.class)
@SuiteClasses(SampleTestCaseWithOneTest.class)