[testng] 62/355: testng-496 org.testng.junit.JUnit4TestRunner handles testAssumptionFailure as a failure but it should be ignored Report test as skip. Also report as skip from #testFailure with AssumptionViolatedException as failure exception Remove unnecessary super calls. (RunListener is special not-implementation class) Fix bug when test with assumption failure reported also as passed. Add test for this case.

Eugene Zhukov eugene-guest at moszumanska.debian.org
Tue Aug 18 10:19:48 UTC 2015


This is an automated email from the git hooks/post-receive script.

eugene-guest pushed a commit to annotated tag OpenBSD
in repository testng.

commit 273426adec7bf37d0b8f55f1ab89db8363ca9f84
Author: Vladislav Rassokhin <vladislav.rassokhin at jetbrains.com>
Date:   Sat Mar 29 23:08:37 2014 +0400

    testng-496 org.testng.junit.JUnit4TestRunner handles testAssumptionFailure as a failure but it should be ignored
    Report test as skip.
    Also report as skip from #testFailure with AssumptionViolatedException as failure exception
    Remove unnecessary super calls. (RunListener is special not-implementation class)
    Fix bug when test with assumption failure reported also as passed.
    Add test for this case.
---
 .../java/org/testng/junit/JUnit4TestRunner.java    | 37 ++++++++++++++--------
 src/test/java/test/JUnit4Test.java                 |  2 +-
 src/test/java/test/junit4/JUnit4Sample2.java       |  8 ++++-
 src/test/java/test/junit4/JUnit4SampleSuite.java   |  2 +-
 4 files changed, 33 insertions(+), 16 deletions(-)

diff --git a/src/main/java/org/testng/junit/JUnit4TestRunner.java b/src/main/java/org/testng/junit/JUnit4TestRunner.java
index 9d7fa6d..2b81fcc 100644
--- a/src/main/java/org/testng/junit/JUnit4TestRunner.java
+++ b/src/main/java/org/testng/junit/JUnit4TestRunner.java
@@ -111,25 +111,28 @@ public class JUnit4TestRunner implements IJUnitTestRunner {
     private class RL extends RunListener {
 
         private Map<Description, ITestResult> runs = new WeakHashMap<Description, ITestResult>();
-        private List<Description> failures = new LinkedList<Description>();
+        private List<Description> notified = new LinkedList<Description>();
 
         @Override
         public void testAssumptionFailure(Failure failure) {
-            super.testAssumptionFailure(failure);
+            notified.add(failure.getDescription());
             ITestResult tr = runs.get(failure.getDescription());
-            tr.setStatus(TestResult.FAILURE);
+            tr.setStatus(TestResult.SKIP);
             tr.setEndMillis(Calendar.getInstance().getTimeInMillis());
             tr.setThrowable(failure.getException());
-            m_parentRunner.addFailedTest(tr.getMethod(), tr);
+            m_parentRunner.addSkippedTest(tr.getMethod(), tr);
             for (ITestListener l : m_listeners) {
-                l.onTestFailure(tr);
+                l.onTestSkipped(tr);
             }
         }
 
         @Override
         public void testFailure(Failure failure) throws Exception {
-            super.testFailure(failure);
-            failures.add(failure.getDescription());
+            if (isAssumptionFailed(failure)) {
+                this.testAssumptionFailure(failure);
+                return;
+            }
+            notified.add(failure.getDescription());
             ITestResult tr = runs.get(failure.getDescription());
             tr.setStatus(TestResult.FAILURE);
             tr.setEndMillis(Calendar.getInstance().getTimeInMillis());
@@ -142,9 +145,8 @@ public class JUnit4TestRunner implements IJUnitTestRunner {
 
         @Override
         public void testFinished(Description description) throws Exception {
-            super.testFinished(description);
             ITestResult tr = runs.get(description);
-            if (!failures.contains(description)) {
+            if (!notified.contains(description)) {
                 tr.setStatus(TestResult.SUCCESS);
                 tr.setEndMillis(Calendar.getInstance().getTimeInMillis());
                 m_parentRunner.addPassedTest(tr.getMethod(), tr);
@@ -157,7 +159,6 @@ public class JUnit4TestRunner implements IJUnitTestRunner {
 
         @Override
         public void testIgnored(Description description) throws Exception {
-            super.testIgnored(description);
             ITestResult tr = createTestResult(description);
             tr.setStatus(TestResult.SKIP);
             tr.setEndMillis(tr.getStartMillis());
@@ -170,17 +171,14 @@ public class JUnit4TestRunner implements IJUnitTestRunner {
 
         @Override
         public void testRunFinished(Result result) throws Exception {
-            super.testRunFinished(result);
         }
 
         @Override
         public void testRunStarted(Description description) throws Exception {
-            super.testRunStarted(description);
         }
 
         @Override
         public void testStarted(Description description) throws Exception {
-            super.testStarted(description);
             ITestResult tr = createTestResult(description);
             runs.put(description, tr);
             for (ITestListener l : m_listeners) {
@@ -208,4 +206,17 @@ public class JUnit4TestRunner implements IJUnitTestRunner {
             return tr;
         }
     }
+
+    private static boolean isAssumptionFailed(Failure failure) {
+        if (failure == null) {
+            return false;
+        }
+        //noinspection ThrowableResultOfMethodCallIgnored
+        final Throwable exception = failure.getException();
+        //noinspection SimplifiableIfStatement
+        if (exception == null) {
+            return false;
+        }
+        return "org.junit.internal.AssumptionViolatedException".equals(exception.getClass().getCanonicalName());
+    }
 }
diff --git a/src/test/java/test/JUnit4Test.java b/src/test/java/test/JUnit4Test.java
index 4abbfa1..98b1f72 100644
--- a/src/test/java/test/JUnit4Test.java
+++ b/src/test/java/test/JUnit4Test.java
@@ -39,7 +39,7 @@ public class JUnit4Test extends BaseTest {
 
         run();
         String[] passed = JUnit4SampleSuite.EXPECTED;
-        String[] failed = JUnit4Sample2.FAILED;
+        String[] failed = JUnit4SampleSuite.FAILED;
         String[] skipped = JUnit4SampleSuite.SKIPPED;
 
         verifyTests("Passed", passed, getPassedTests());
diff --git a/src/test/java/test/junit4/JUnit4Sample2.java b/src/test/java/test/junit4/JUnit4Sample2.java
index 5ecfc0a..0209f82 100644
--- a/src/test/java/test/junit4/JUnit4Sample2.java
+++ b/src/test/java/test/junit4/JUnit4Sample2.java
@@ -1,6 +1,7 @@
 package test.junit4;
 
 import org.junit.Assert;
+import org.junit.Assume;
 import org.junit.Ignore;
 import org.junit.Test;
 
@@ -11,7 +12,7 @@ import org.junit.Test;
 public class JUnit4Sample2 {
 
     public static final String[] EXPECTED = {"t2", "t4"};
-    public static final String[] SKIPPED = {"t3"};
+    public static final String[] SKIPPED = {"t3", "ta"};
     public static final String[] FAILED = {"tf"};
 
     @Test
@@ -31,4 +32,9 @@ public class JUnit4Sample2 {
     public void tf() {
         Assert.fail("a test");
     }
+
+    @Test
+    public void ta() {
+        Assume.assumeTrue(false);
+    }
 }
diff --git a/src/test/java/test/junit4/JUnit4SampleSuite.java b/src/test/java/test/junit4/JUnit4SampleSuite.java
index d597a92..19e93b0 100644
--- a/src/test/java/test/junit4/JUnit4SampleSuite.java
+++ b/src/test/java/test/junit4/JUnit4SampleSuite.java
@@ -15,6 +15,6 @@ import org.junit.runners.Suite;
 public class JUnit4SampleSuite {
 
     public static final String[] EXPECTED = {"t1", "t2", "t4"};
-    public static final String[] SKIPPED = {"t3"};
+    public static final String[] SKIPPED = {"t3", "ta"};
     public static final String[] FAILED = {"tf"};
 }

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-java/testng.git



More information about the pkg-java-commits mailing list