Fixed: JUnitReporter generates an <error> tag for successful expectedExceptions tests
diff --git a/CHANGES.txt b/CHANGES.txt
index 7009061..174442e 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,5 +1,12 @@
Current
+Fixed: JUnitReporter generates an <error> tag for successful expectedExceptions tests
+
+===========================================================================
+
+6.0
+2011/03/16
+
Added: @Guice(moduleFactory) and IModuleFactory
Added: @Guice(module)
Added: timeOut for configuration methods
diff --git a/src/main/java/org/testng/reporters/JUnitReportReporter.java b/src/main/java/org/testng/reporters/JUnitReportReporter.java
index cf8c4c9..518393e 100644
--- a/src/main/java/org/testng/reporters/JUnitReportReporter.java
+++ b/src/main/java/org/testng/reporters/JUnitReportReporter.java
@@ -60,28 +60,29 @@
for (ITestResult tr: entry.getValue()) {
TestTag testTag = new TestTag();
- boolean isError = ! (tr.getThrowable() instanceof AssertionError);
- if (tr.getStatus() != ITestResult.SUCCESS) {
- if (isError) {
+ boolean isSuccess = tr.getStatus() == ITestResult.SUCCESS;
+ if (isSuccess) {
+ if (tr.getThrowable() instanceof AssertionError) {
errors++;
} else {
failures++;
}
}
+
Properties p2 = new Properties();
p2.setProperty("classname", cls.getName());
p2.setProperty("name", tr.getMethod().getMethodName());
long time = tr.getEndMillis() - tr.getStartMillis();
p2.setProperty("time", "" + formatTime(time));
Throwable t = getThrowable(tr, failedConfigurations);
- if (t != null) {
+ if (! isSuccess && t != null) {
StringWriter sw = new StringWriter();
PrintWriter pw = new PrintWriter(sw);
t.printStackTrace(pw);
testTag.message = t.getMessage();
testTag.type = t.getClass().getName();
testTag.stackTrace = sw.toString();
- testTag.errorTag = isError ? "error" : "failure";
+ testTag.errorTag = tr.getThrowable() instanceof AssertionError ? "error" : "failure";
}
totalTime += time;
testCount++;