[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