diff options
author | Brett Chabot <brettchabot@google.com> | 2014-01-27 15:23:40 -0800 |
---|---|---|
committer | Brett Chabot <brettchabot@google.com> | 2014-01-29 20:22:39 -0800 |
commit | e696b968bfe7521fe8c6623dbc466adb9b4302c9 (patch) | |
tree | 23107ce89439599e227fbc8d53c7a13bb9147d00 | |
parent | 534cd34317e12124cc888baa2e3cec3a0b029129 (diff) | |
download | testing-e696b968bfe7521fe8c6623dbc466adb9b4302c9.tar.gz |
Support multiple notAnnotation values
Bug 12208088
Change-Id: Id2c8ec1215ee7b63d24072131eab227743d366ce
-rw-r--r-- | support/src/android/support/test/runner/AndroidJUnitRunner.java | 3 | ||||
-rw-r--r-- | support/tests/src/android/support/test/internal/runner/TestRequestBuilderTest.java | 571 |
2 files changed, 306 insertions, 268 deletions
diff --git a/support/src/android/support/test/runner/AndroidJUnitRunner.java b/support/src/android/support/test/runner/AndroidJUnitRunner.java index 069d34f..9179519 100644 --- a/support/src/android/support/test/runner/AndroidJUnitRunner.java +++ b/support/src/android/support/test/runner/AndroidJUnitRunner.java @@ -32,7 +32,6 @@ import android.support.test.internal.runner.listener.SuiteAssignmentPrinter; import android.test.suitebuilder.annotation.LargeTest; import android.util.Log; - import org.junit.internal.TextListener; import org.junit.runner.JUnitCore; import org.junit.runner.Result; @@ -113,7 +112,7 @@ import java.util.List; * <p/> * <b>Filter test run to tests <i>without any</i> of a list of annotations:</b> adb shell am * instrument -w -e notAnnotation com.android.foo.MyAnnotation,com.android.foo.AnotherAnnotation - * com.android.foo/com.android.test.runner.AndroidJUnitRunner + * com.android.foo/android.support.test.runner.AndroidJUnitRunner * <p/> * <b>To run in 'log only' mode</b> * -e log true diff --git a/support/tests/src/android/support/test/internal/runner/TestRequestBuilderTest.java b/support/tests/src/android/support/test/internal/runner/TestRequestBuilderTest.java index 2b885d9..677a437 100644 --- a/support/tests/src/android/support/test/internal/runner/TestRequestBuilderTest.java +++ b/support/tests/src/android/support/test/internal/runner/TestRequestBuilderTest.java @@ -193,6 +193,27 @@ public class TestRequestBuilderTest { public static class InheritedAnnnotation extends SampleJUnit3Test { } + public static class SampleMultipleAnnotation { + + @Test + @SmallTest + public void testSmallSkipped() { + Assert.fail("should not run"); + } + + @Test + @MediumTest + public void testMediumSkipped() { + Assert.fail("should not run"); + } + + @Test + public void testRunThis() { + // fail this test too to make it easier to check it was run + Assert.fail("should run"); + } + } + @InjectInstrumentation public Instrumentation mInstr; @@ -202,270 +223,288 @@ public class TestRequestBuilderTest { /** * Test initial condition for size filtering - that all tests run when no filter is attached */ - @Test - public void testNoSize() { - TestRequestBuilder b = new TestRequestBuilder(new PrintStream(new ByteArrayOutputStream())); - b.addTestClass(SampleTest.class.getName()); - TestRequest request = b.build(mInstr, mBundle); - JUnitCore testRunner = new JUnitCore(); - Result result = testRunner.run(request.getRequest()); - Assert.assertEquals(2, result.getRunCount()); - } - - /** - * Test that size annotation filtering works - */ - @Test - public void testSize() { - TestRequestBuilder b = new TestRequestBuilder(new PrintStream(new ByteArrayOutputStream())); - b.addTestClass(SampleTest.class.getName()); - b.addTestSizeFilter("small"); - TestRequest request = b.build(mInstr, mBundle); - JUnitCore testRunner = new JUnitCore(); - Result result = testRunner.run(request.getRequest()); - Assert.assertEquals(1, result.getRunCount()); - } - - /** - * Test that size annotation filtering by class works - */ - @Test - public void testSize_class() { - TestRequestBuilder b = new TestRequestBuilder(new PrintStream(new ByteArrayOutputStream())); - b.addTestClass(SampleTest.class.getName()); - b.addTestClass(SampleClassSize.class.getName()); - b.addTestSizeFilter("small"); - TestRequest request = b.build(mInstr, mBundle); - JUnitCore testRunner = new JUnitCore(); - Result result = testRunner.run(request.getRequest()); - Assert.assertEquals(3, result.getRunCount()); - } - - /** - * Test case where entire JUnit3 test class has been filtered out - */ - @Test - public void testSize_classFiltered() { - TestRequestBuilder b = new TestRequestBuilder(new PrintStream(new ByteArrayOutputStream())); - b.addTestClass(SampleTest.class.getName()); - b.addTestClass(SampleNoSize.class.getName()); - b.addTestSizeFilter("small"); - TestRequest request = b.build(mInstr, mBundle); - MyRunListener l = new MyRunListener(); - JUnitCore testRunner = new JUnitCore(); - testRunner.addListener(l); - testRunner.run(request.getRequest()); - Assert.assertEquals(1, l.mTestCount); - } - - private static class MyRunListener extends RunListener { - private int mTestCount = -1; - - @Override - public void testRunStarted(Description description) throws Exception { - mTestCount = description.testCount(); - } - } - - /** - * Test size annotations with JUnit3 test methods - */ - @Test - public void testSize_junit3Method() { - TestRequestBuilder b = new TestRequestBuilder(new PrintStream(new ByteArrayOutputStream())); - b.addTestClass(SampleJUnit3Test.class.getName()); - b.addTestClass(SampleNoSize.class.getName()); - b.addTestSizeFilter("small"); - TestRequest request = b.build(mInstr, mBundle); - JUnitCore testRunner = new JUnitCore(); - Result r = testRunner.run(request.getRequest()); - Assert.assertEquals(2, r.getRunCount()); - } - - /** - * Test @Suppress with JUnit3 tests - */ - @Test - public void testSuppress_junit3Method() { - TestRequestBuilder b = new TestRequestBuilder(new PrintStream(new ByteArrayOutputStream())); - b.addTestClass(SampleJUnit3Suppressed.class.getName()); - TestRequest request = b.build(mInstr, mBundle); - JUnitCore testRunner = new JUnitCore(); - Result r = testRunner.run(request.getRequest()); - Assert.assertEquals(2, r.getRunCount()); - } - - /** - * Test @Suppress in combination with size that filters out all methods - */ - @Test - public void testSuppress_withSize() { - TestRequestBuilder b = new TestRequestBuilder(new PrintStream(new ByteArrayOutputStream())); - b.addTestClass(SampleJUnit3Suppressed.class.getName()); - b.addTestClass(SampleJUnit3Test.class.getName()); - b.addTestSizeFilter(TestRequestBuilder.SMALL_SIZE); - TestRequest request = b.build(mInstr, mBundle); - JUnitCore testRunner = new JUnitCore(); - MyRunListener l = new MyRunListener(); - testRunner.addListener(l); - Result r = testRunner.run(request.getRequest()); - Assert.assertEquals(2, r.getRunCount()); - Assert.assertEquals(2, l.mTestCount); - } - - /** - * Test @Suppress in combination with size that filters out all methods, with super class. - */ - @Test - public void testSuppress_withSizeAndSuper() { - TestRequestBuilder b = new TestRequestBuilder(new PrintStream(new ByteArrayOutputStream())); - b.addTestClass(SampleJUnit3SuppressedWithSuper.class.getName()); - b.addTestClass(SampleJUnit3Test.class.getName()); - b.addTestSizeFilter(TestRequestBuilder.SMALL_SIZE); - TestRequest request = b.build(mInstr, mBundle); - JUnitCore testRunner = new JUnitCore(); - MyRunListener l = new MyRunListener(); - testRunner.addListener(l); - Result r = testRunner.run(request.getRequest()); - Assert.assertEquals(2, r.getRunCount()); - Assert.assertEquals(2, l.mTestCount); - } - - /** - * Test @Suppress when all methods have been filtered - */ - @Test - public void testSuppress_all() { - TestRequestBuilder b = new TestRequestBuilder(new PrintStream(new ByteArrayOutputStream())); - b.addTestClass(SampleAllSuppressed.class.getName()); - b.addTestClass(SampleJUnit3Suppressed.class.getName()); - TestRequest request = b.build(mInstr, mBundle); - JUnitCore testRunner = new JUnitCore(); - MyRunListener l = new MyRunListener(); - testRunner.addListener(l); - Result r = testRunner.run(request.getRequest()); - Assert.assertEquals(2, r.getRunCount()); - Assert.assertEquals(2, l.mTestCount); - } - - /** - * Test case where all methods are filtered out by combination of @Suppress and size when all - * methods have been filtered. - */ - @Test - public void testSizeAndSuppress() { - TestRequestBuilder b = new TestRequestBuilder(new PrintStream(new ByteArrayOutputStream())); - b.addTestClass(SampleSizeAndSuppress.class.getName()); - b.addTestClass(SampleJUnit3Test.class.getName()); - b.addTestSizeFilter(TestRequestBuilder.SMALL_SIZE); - TestRequest request = b.build(mInstr, mBundle); - JUnitCore testRunner = new JUnitCore(); - MyRunListener l = new MyRunListener(); - testRunner.addListener(l); - Result r = testRunner.run(request.getRequest()); - Assert.assertEquals(2, r.getRunCount()); - Assert.assertEquals(2, l.mTestCount); - } - - /** - * Test case where method has both a size annotation and suppress annotation. Expect suppress - * to overrule the size. - */ - @Test - public void testSizeWithSuppress() { - TestRequestBuilder b = new TestRequestBuilder(new PrintStream(new ByteArrayOutputStream())); - b.addTestClass(SampleSizeWithSuppress.class.getName()); - b.addTestClass(SampleJUnit3Test.class.getName()); - b.addTestSizeFilter(TestRequestBuilder.SMALL_SIZE); - TestRequest request = b.build(mInstr, mBundle); - JUnitCore testRunner = new JUnitCore(); - MyRunListener l = new MyRunListener(); - testRunner.addListener(l); - Result r = testRunner.run(request.getRequest()); - Assert.assertEquals(2, r.getRunCount()); - Assert.assertEquals(2, l.mTestCount); - } - - /** - * Test that annotation filtering by class works - */ - @Test - public void testAddAnnotationInclusionFilter() { - TestRequestBuilder b = new TestRequestBuilder(new PrintStream(new ByteArrayOutputStream())); - b.addAnnotationInclusionFilter(SmallTest.class.getName()); - b.addTestClass(SampleTest.class.getName()); - b.addTestClass(SampleClassSize.class.getName()); - TestRequest request = b.build(mInstr, mBundle); - JUnitCore testRunner = new JUnitCore(); - Result result = testRunner.run(request.getRequest()); - Assert.assertEquals(3, result.getRunCount()); - } - - /** - * Test that annotation filtering by class works - */ - @Test - public void testAddAnnotationExclusionFilter() { - TestRequestBuilder b = new TestRequestBuilder(new PrintStream(new ByteArrayOutputStream())); - b.addAnnotationExclusionFilter(SmallTest.class.getName()); - b.addTestClass(SampleTest.class.getName()); - b.addTestClass(SampleClassSize.class.getName()); - TestRequest request = b.build(mInstr, mBundle); - JUnitCore testRunner = new JUnitCore(); - Result result = testRunner.run(request.getRequest()); - Assert.assertEquals(1, result.getRunCount()); - } - - /** - * Test that annotation filtering by class works when methods are from superclass. - * - * TODO: add a similiar test to upstream junit. - */ - @Test - public void testAddAnnotationInclusionFilter_super() { - TestRequestBuilder b = new TestRequestBuilder(new PrintStream(new ByteArrayOutputStream())); - b.addAnnotationInclusionFilter(SmallTest.class.getName()); - b.addTestClass(InheritedAnnnotation.class.getName()); - TestRequest request = b.build(mInstr, mBundle); - JUnitCore testRunner = new JUnitCore(); - Result result = testRunner.run(request.getRequest()); - Assert.assertEquals(2, result.getRunCount()); - } - - /** - * Test that a method size annotation overrides a class size annotation. - */ - @Test - public void testTestSizeFilter_override() { - TestRequestBuilder b = new TestRequestBuilder(new PrintStream(new ByteArrayOutputStream())); - b.addTestSizeFilter(TestRequestBuilder.SMALL_SIZE); - b.addTestClass(SampleOverrideSize.class.getName()); - TestRequest request = b.build(mInstr, mBundle); - JUnitCore testRunner = new JUnitCore(); - Result result = testRunner.run(request.getRequest()); - Assert.assertEquals(1, result.getRunCount()); - - b = new TestRequestBuilder(new PrintStream(new ByteArrayOutputStream())); - b.addTestSizeFilter(TestRequestBuilder.MEDIUM_SIZE); - b.addTestClass(SampleOverrideSize.class.getName()); - request = b.build(mInstr, mBundle); - testRunner = new JUnitCore(); - result = testRunner.run(request.getRequest()); - Assert.assertEquals(1, result.getRunCount()); - } - - /** - * Test that a method size annotation of same type as class level annotation is correctly - * filtered. - */ - @Test - public void testTestSizeFilter_sameAnnotation() { - TestRequestBuilder b = new TestRequestBuilder(new PrintStream(new ByteArrayOutputStream())); - b.addTestSizeFilter(TestRequestBuilder.SMALL_SIZE); - b.addTestClass(SampleSameSize.class.getName()); - TestRequest request = b.build(mInstr, mBundle); - JUnitCore testRunner = new JUnitCore(); - Result result = testRunner.run(request.getRequest()); - Assert.assertEquals(1, result.getRunCount()); - } + @Test + public void testNoSize() { + TestRequestBuilder b = new TestRequestBuilder(new PrintStream(new ByteArrayOutputStream())); + b.addTestClass(SampleTest.class.getName()); + TestRequest request = b.build(mInstr, mBundle); + JUnitCore testRunner = new JUnitCore(); + Result result = testRunner.run(request.getRequest()); + Assert.assertEquals(2, result.getRunCount()); + } + + /** + * Test that size annotation filtering works + */ + @Test + public void testSize() { + TestRequestBuilder b = new TestRequestBuilder(new PrintStream(new ByteArrayOutputStream())); + b.addTestClass(SampleTest.class.getName()); + b.addTestSizeFilter("small"); + TestRequest request = b.build(mInstr, mBundle); + JUnitCore testRunner = new JUnitCore(); + Result result = testRunner.run(request.getRequest()); + Assert.assertEquals(1, result.getRunCount()); + } + + /** + * Test that size annotation filtering by class works + */ + @Test + public void testSize_class() { + TestRequestBuilder b = new TestRequestBuilder(new PrintStream(new ByteArrayOutputStream())); + b.addTestClass(SampleTest.class.getName()); + b.addTestClass(SampleClassSize.class.getName()); + b.addTestSizeFilter("small"); + TestRequest request = b.build(mInstr, mBundle); + JUnitCore testRunner = new JUnitCore(); + Result result = testRunner.run(request.getRequest()); + Assert.assertEquals(3, result.getRunCount()); + } + + /** + * Test case where entire JUnit3 test class has been filtered out + */ + @Test + public void testSize_classFiltered() { + TestRequestBuilder b = new TestRequestBuilder(new PrintStream(new ByteArrayOutputStream())); + b.addTestClass(SampleTest.class.getName()); + b.addTestClass(SampleNoSize.class.getName()); + b.addTestSizeFilter("small"); + TestRequest request = b.build(mInstr, mBundle); + MyRunListener l = new MyRunListener(); + JUnitCore testRunner = new JUnitCore(); + testRunner.addListener(l); + testRunner.run(request.getRequest()); + Assert.assertEquals(1, l.mTestCount); + } + + private static class MyRunListener extends RunListener { + private int mTestCount = -1; + + @Override + public void testRunStarted(Description description) throws Exception { + mTestCount = description.testCount(); + } + } + + /** + * Test size annotations with JUnit3 test methods + */ + @Test + public void testSize_junit3Method() { + TestRequestBuilder b = new TestRequestBuilder(new PrintStream(new ByteArrayOutputStream())); + b.addTestClass(SampleJUnit3Test.class.getName()); + b.addTestClass(SampleNoSize.class.getName()); + b.addTestSizeFilter("small"); + TestRequest request = b.build(mInstr, mBundle); + JUnitCore testRunner = new JUnitCore(); + Result r = testRunner.run(request.getRequest()); + Assert.assertEquals(2, r.getRunCount()); + } + + /** + * Test @Suppress with JUnit3 tests + */ + @Test + public void testSuppress_junit3Method() { + TestRequestBuilder b = new TestRequestBuilder(new PrintStream(new ByteArrayOutputStream())); + b.addTestClass(SampleJUnit3Suppressed.class.getName()); + TestRequest request = b.build(mInstr, mBundle); + JUnitCore testRunner = new JUnitCore(); + Result r = testRunner.run(request.getRequest()); + Assert.assertEquals(2, r.getRunCount()); + } + + /** + * Test @Suppress in combination with size that filters out all methods + */ + @Test + public void testSuppress_withSize() { + TestRequestBuilder b = new TestRequestBuilder(new PrintStream(new ByteArrayOutputStream())); + b.addTestClass(SampleJUnit3Suppressed.class.getName()); + b.addTestClass(SampleJUnit3Test.class.getName()); + b.addTestSizeFilter(TestRequestBuilder.SMALL_SIZE); + TestRequest request = b.build(mInstr, mBundle); + JUnitCore testRunner = new JUnitCore(); + MyRunListener l = new MyRunListener(); + testRunner.addListener(l); + Result r = testRunner.run(request.getRequest()); + Assert.assertEquals(2, r.getRunCount()); + Assert.assertEquals(2, l.mTestCount); + } + + /** + * Test @Suppress in combination with size that filters out all methods, with super class. + */ + @Test + public void testSuppress_withSizeAndSuper() { + TestRequestBuilder b = new TestRequestBuilder(new PrintStream(new ByteArrayOutputStream())); + b.addTestClass(SampleJUnit3SuppressedWithSuper.class.getName()); + b.addTestClass(SampleJUnit3Test.class.getName()); + b.addTestSizeFilter(TestRequestBuilder.SMALL_SIZE); + TestRequest request = b.build(mInstr, mBundle); + JUnitCore testRunner = new JUnitCore(); + MyRunListener l = new MyRunListener(); + testRunner.addListener(l); + Result r = testRunner.run(request.getRequest()); + Assert.assertEquals(2, r.getRunCount()); + Assert.assertEquals(2, l.mTestCount); + } + + /** + * Test @Suppress when all methods have been filtered + */ + @Test + public void testSuppress_all() { + TestRequestBuilder b = new TestRequestBuilder(new PrintStream(new ByteArrayOutputStream())); + b.addTestClass(SampleAllSuppressed.class.getName()); + b.addTestClass(SampleJUnit3Suppressed.class.getName()); + TestRequest request = b.build(mInstr, mBundle); + JUnitCore testRunner = new JUnitCore(); + MyRunListener l = new MyRunListener(); + testRunner.addListener(l); + Result r = testRunner.run(request.getRequest()); + Assert.assertEquals(2, r.getRunCount()); + Assert.assertEquals(2, l.mTestCount); + } + + /** + * Test case where all methods are filtered out by combination of @Suppress and size when all + * methods have been filtered. + */ + @Test + public void testSizeAndSuppress() { + TestRequestBuilder b = new TestRequestBuilder(new PrintStream(new ByteArrayOutputStream())); + b.addTestClass(SampleSizeAndSuppress.class.getName()); + b.addTestClass(SampleJUnit3Test.class.getName()); + b.addTestSizeFilter(TestRequestBuilder.SMALL_SIZE); + TestRequest request = b.build(mInstr, mBundle); + JUnitCore testRunner = new JUnitCore(); + MyRunListener l = new MyRunListener(); + testRunner.addListener(l); + Result r = testRunner.run(request.getRequest()); + Assert.assertEquals(2, r.getRunCount()); + Assert.assertEquals(2, l.mTestCount); + } + + /** + * Test case where method has both a size annotation and suppress annotation. Expect suppress + * to overrule the size. + */ + @Test + public void testSizeWithSuppress() { + TestRequestBuilder b = new TestRequestBuilder(new PrintStream(new ByteArrayOutputStream())); + b.addTestClass(SampleSizeWithSuppress.class.getName()); + b.addTestClass(SampleJUnit3Test.class.getName()); + b.addTestSizeFilter(TestRequestBuilder.SMALL_SIZE); + TestRequest request = b.build(mInstr, mBundle); + JUnitCore testRunner = new JUnitCore(); + MyRunListener l = new MyRunListener(); + testRunner.addListener(l); + Result r = testRunner.run(request.getRequest()); + Assert.assertEquals(2, r.getRunCount()); + Assert.assertEquals(2, l.mTestCount); + } + + /** + * Test that annotation filtering by class works + */ + @Test + public void testAddAnnotationInclusionFilter() { + TestRequestBuilder b = new TestRequestBuilder(new PrintStream(new ByteArrayOutputStream())); + b.addAnnotationInclusionFilter(SmallTest.class.getName()); + b.addTestClass(SampleTest.class.getName()); + b.addTestClass(SampleClassSize.class.getName()); + TestRequest request = b.build(mInstr, mBundle); + JUnitCore testRunner = new JUnitCore(); + Result result = testRunner.run(request.getRequest()); + Assert.assertEquals(3, result.getRunCount()); + } + + /** + * Test that annotation filtering by class works + */ + @Test + public void testAddAnnotationExclusionFilter() { + TestRequestBuilder b = new TestRequestBuilder(new PrintStream(new ByteArrayOutputStream())); + b.addAnnotationExclusionFilter(SmallTest.class.getName()); + b.addTestClass(SampleTest.class.getName()); + b.addTestClass(SampleClassSize.class.getName()); + TestRequest request = b.build(mInstr, mBundle); + JUnitCore testRunner = new JUnitCore(); + Result result = testRunner.run(request.getRequest()); + Assert.assertEquals(1, result.getRunCount()); + } + + /** + * Test that annotation filtering by class works when methods are from superclass. + * + * TODO: add a similiar test to upstream junit. + */ + @Test + public void testAddAnnotationInclusionFilter_super() { + TestRequestBuilder b = new TestRequestBuilder(new PrintStream(new ByteArrayOutputStream())); + b.addAnnotationInclusionFilter(SmallTest.class.getName()); + b.addTestClass(InheritedAnnnotation.class.getName()); + TestRequest request = b.build(mInstr, mBundle); + JUnitCore testRunner = new JUnitCore(); + Result result = testRunner.run(request.getRequest()); + Assert.assertEquals(2, result.getRunCount()); + } + + /** + * Test that a method size annotation overrides a class size annotation. + */ + @Test + public void testTestSizeFilter_override() { + TestRequestBuilder b = new TestRequestBuilder(new PrintStream(new ByteArrayOutputStream())); + b.addTestSizeFilter(TestRequestBuilder.SMALL_SIZE); + b.addTestClass(SampleOverrideSize.class.getName()); + TestRequest request = b.build(mInstr, mBundle); + JUnitCore testRunner = new JUnitCore(); + Result result = testRunner.run(request.getRequest()); + Assert.assertEquals(1, result.getRunCount()); + + b = new TestRequestBuilder(new PrintStream(new ByteArrayOutputStream())); + b.addTestSizeFilter(TestRequestBuilder.MEDIUM_SIZE); + b.addTestClass(SampleOverrideSize.class.getName()); + request = b.build(mInstr, mBundle); + testRunner = new JUnitCore(); + result = testRunner.run(request.getRequest()); + Assert.assertEquals(1, result.getRunCount()); + } + + /** + * Test that a method size annotation of same type as class level annotation is correctly + * filtered. + */ + @Test + public void testTestSizeFilter_sameAnnotation() { + TestRequestBuilder b = new TestRequestBuilder(new PrintStream(new ByteArrayOutputStream())); + b.addTestSizeFilter(TestRequestBuilder.SMALL_SIZE); + b.addTestClass(SampleSameSize.class.getName()); + TestRequest request = b.build(mInstr, mBundle); + JUnitCore testRunner = new JUnitCore(); + Result result = testRunner.run(request.getRequest()); + Assert.assertEquals(1, result.getRunCount()); + } + + /** + * Test provided multiple annotations to exclude. + */ + @Test + public void testTestSizeFilter_multipleNotAnnotation() { + TestRequestBuilder b = new TestRequestBuilder(new PrintStream(new ByteArrayOutputStream())); + b.addAnnotationExclusionFilter(SmallTest.class.getName()); + b.addAnnotationExclusionFilter(MediumTest.class.getName()); + b.addTestClass(SampleMultipleAnnotation.class.getName()); + TestRequest request = b.build(mInstr, mBundle); + JUnitCore testRunner = new JUnitCore(); + Result result = testRunner.run(request.getRequest()); + // expect 1 test that failed + Assert.assertEquals(1, result.getRunCount()); + Assert.assertEquals("testRunThis", + result.getFailures().get(0).getDescription().getMethodName()); + } } |