maven-surefire-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From krosenv...@apache.org
Subject svn commit: r1058735 - in /maven/surefire/trunk: surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/ surefire-integration-tests/src/test/resources/surefire-500-puzzling-error/ surefire-integration-tests/src/test/resources/surefire-5...
Date Thu, 13 Jan 2011 20:27:08 GMT
Author: krosenvold
Date: Thu Jan 13 20:27:08 2011
New Revision: 1058735

URL: http://svn.apache.org/viewvc?rev=1058735&view=rev
Log:
[SUREFIRE-500] puzzling NoClassDefFoundError instead of meaningfull stacktrace

Fixed with integration test

Added:
    maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/Surefire500PuzzlingErrorIT.java
  (with props)
    maven/surefire/trunk/surefire-integration-tests/src/test/resources/surefire-500-puzzling-error/
    maven/surefire/trunk/surefire-integration-tests/src/test/resources/surefire-500-puzzling-error/pom.xml
  (with props)
    maven/surefire/trunk/surefire-integration-tests/src/test/resources/surefire-500-puzzling-error/src/
    maven/surefire/trunk/surefire-integration-tests/src/test/resources/surefire-500-puzzling-error/src/test/
    maven/surefire/trunk/surefire-integration-tests/src/test/resources/surefire-500-puzzling-error/src/test/java/
    maven/surefire/trunk/surefire-integration-tests/src/test/resources/surefire-500-puzzling-error/src/test/java/surefire500/
    maven/surefire/trunk/surefire-integration-tests/src/test/resources/surefire-500-puzzling-error/src/test/java/surefire500/ExplodingTest.java
  (with props)
    maven/surefire/trunk/surefire-integration-tests/src/test/resources/surefire-500-puzzling-error/src/test/java/surefire500/PassingTest.java
  (with props)
    maven/surefire/trunk/surefire-integration-tests/src/test/resources/surefire-500-puzzling-error/src/test/java/surefire500/Suite.java
  (with props)
Modified:
    maven/surefire/trunk/surefire-providers/surefire-junit4/src/main/java/org/apache/maven/surefire/junit4/JUnit4Provider.java

Added: maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/Surefire500PuzzlingErrorIT.java
URL: http://svn.apache.org/viewvc/maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/Surefire500PuzzlingErrorIT.java?rev=1058735&view=auto
==============================================================================
--- maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/Surefire500PuzzlingErrorIT.java
(added)
+++ maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/Surefire500PuzzlingErrorIT.java
Thu Jan 13 20:27:08 2011
@@ -0,0 +1,58 @@
+package org.apache.maven.surefire.its;
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+
+import java.io.File;
+import java.util.List;
+
+import junit.framework.Assert;
+
+/**
+ * SUREFIRE-500 Asserts correct error handling for the "odd" surefire-500 (and 625) issues.
+ *
+ * @author Kristian Rosenvold
+ */
+public class Surefire500PuzzlingErrorIT
+    extends SurefireVerifierTestClass
+{
+    public Surefire500PuzzlingErrorIT()
+    {
+        super( "/surefire-500-puzzling-error" );
+    }
+
+    public void testBuildFailingWhenErrors()
+        throws Exception
+    {
+        failNever();
+        executeTest();
+        final File surefireReportsFile = getSurefireReportsFile( "surefire500.ExplodingTest.txt"
);
+
+        final List<String> list = getVerifier().loadFile( surefireReportsFile, false
);
+        for ( String line : list )
+        {
+
+            if ( line.contains( "java.lang.NoClassDefFoundError: whoops!" ) )
+            {
+                return;
+            }
+        }
+        Assert.fail( "Did not find expected message in log" );
+    }
+}
\ No newline at end of file

Propchange: maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/Surefire500PuzzlingErrorIT.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: maven/surefire/trunk/surefire-integration-tests/src/test/resources/surefire-500-puzzling-error/pom.xml
URL: http://svn.apache.org/viewvc/maven/surefire/trunk/surefire-integration-tests/src/test/resources/surefire-500-puzzling-error/pom.xml?rev=1058735&view=auto
==============================================================================
--- maven/surefire/trunk/surefire-integration-tests/src/test/resources/surefire-500-puzzling-error/pom.xml
(added)
+++ maven/surefire/trunk/surefire-integration-tests/src/test/resources/surefire-500-puzzling-error/pom.xml
Thu Jan 13 20:27:08 2011
@@ -0,0 +1,44 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+  <groupId>com.example</groupId>
+  <artifactId>surefire-500</artifactId>
+  <packaging>jar</packaging>
+  <version>1.0-SNAPSHOT</version>
+  <name>surefire-500-puzzling-error</name>
+  <url>http://maven.apache.org</url>
+  <properties>
+    <java.source.version>1.5</java.source.version>
+    <java.target.version>1.5</java.target.version>
+    <junit.version>4.4</junit.version>
+  </properties>
+  <dependencies>
+    <dependency>
+      <groupId>junit</groupId>
+      <artifactId>junit</artifactId>
+      <version>${junit.version}</version>
+      <scope>test</scope>
+    </dependency>
+  </dependencies>
+  <build>
+    <pluginManagement>
+      <plugins>
+        <plugin>
+          <groupId>org.apache.maven.plugins</groupId>
+          <artifactId>maven-compiler-plugin</artifactId>
+          <inherited>true</inherited>
+          <configuration>
+            <source>${java.source.version}</source>
+            <target>${java.target.version}</target>
+          </configuration>
+        </plugin>
+        
+        <plugin>
+          <artifactId>maven-surefire-plugin</artifactId>
+          <version>${surefire.version}</version>
+        </plugin>
+
+      </plugins>
+    </pluginManagement>
+  </build>        
+</project>

Propchange: maven/surefire/trunk/surefire-integration-tests/src/test/resources/surefire-500-puzzling-error/pom.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Added: maven/surefire/trunk/surefire-integration-tests/src/test/resources/surefire-500-puzzling-error/src/test/java/surefire500/ExplodingTest.java
URL: http://svn.apache.org/viewvc/maven/surefire/trunk/surefire-integration-tests/src/test/resources/surefire-500-puzzling-error/src/test/java/surefire500/ExplodingTest.java?rev=1058735&view=auto
==============================================================================
--- maven/surefire/trunk/surefire-integration-tests/src/test/resources/surefire-500-puzzling-error/src/test/java/surefire500/ExplodingTest.java
(added)
+++ maven/surefire/trunk/surefire-integration-tests/src/test/resources/surefire-500-puzzling-error/src/test/java/surefire500/ExplodingTest.java
Thu Jan 13 20:27:08 2011
@@ -0,0 +1,25 @@
+package surefire500;
+
+import org.junit.Test;
+
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
+
+
+public class ExplodingTest {
+
+	static {
+		if (true) {
+			throw new java.lang.NoClassDefFoundError("whoops!"); 
+		}
+	}
+	
+	@Test
+	public void testPass() throws Exception {
+		assertTrue(true);
+	}
+	
+	public void testFail() throws Exception {
+		fail("fail");
+	}
+}

Propchange: maven/surefire/trunk/surefire-integration-tests/src/test/resources/surefire-500-puzzling-error/src/test/java/surefire500/ExplodingTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: maven/surefire/trunk/surefire-integration-tests/src/test/resources/surefire-500-puzzling-error/src/test/java/surefire500/PassingTest.java
URL: http://svn.apache.org/viewvc/maven/surefire/trunk/surefire-integration-tests/src/test/resources/surefire-500-puzzling-error/src/test/java/surefire500/PassingTest.java?rev=1058735&view=auto
==============================================================================
--- maven/surefire/trunk/surefire-integration-tests/src/test/resources/surefire-500-puzzling-error/src/test/java/surefire500/PassingTest.java
(added)
+++ maven/surefire/trunk/surefire-integration-tests/src/test/resources/surefire-500-puzzling-error/src/test/java/surefire500/PassingTest.java
Thu Jan 13 20:27:08 2011
@@ -0,0 +1,29 @@
+package surefire500;
+
+import org.junit.Test;
+
+import static org.junit.Assert.assertTrue;
+
+public class PassingTest {
+	
+	@Test
+	public void testOne() throws Exception {
+		assertTrue(true);
+	}
+	
+	@Test
+	public void testTwo() throws Exception {
+		assertTrue(true);
+	}
+	
+	@Test
+	public void testThree() throws Exception {
+		assertTrue(true);
+	}
+	
+	@Test
+	public void testFour() throws Exception {
+		assertTrue(true);
+	}
+
+}

Propchange: maven/surefire/trunk/surefire-integration-tests/src/test/resources/surefire-500-puzzling-error/src/test/java/surefire500/PassingTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: maven/surefire/trunk/surefire-integration-tests/src/test/resources/surefire-500-puzzling-error/src/test/java/surefire500/Suite.java
URL: http://svn.apache.org/viewvc/maven/surefire/trunk/surefire-integration-tests/src/test/resources/surefire-500-puzzling-error/src/test/java/surefire500/Suite.java?rev=1058735&view=auto
==============================================================================
--- maven/surefire/trunk/surefire-integration-tests/src/test/resources/surefire-500-puzzling-error/src/test/java/surefire500/Suite.java
(added)
+++ maven/surefire/trunk/surefire-integration-tests/src/test/resources/surefire-500-puzzling-error/src/test/java/surefire500/Suite.java
Thu Jan 13 20:27:08 2011
@@ -0,0 +1,10 @@
+package surefire500;
+
+import org.junit.runner.RunWith;
+import org.junit.runners.Suite.SuiteClasses;
+
+@RunWith(org.junit.runners.Suite.class)
+@SuiteClasses(value={ExplodingTest.class, PassingTest.class})
+public class Suite {
+
+}

Propchange: maven/surefire/trunk/surefire-integration-tests/src/test/resources/surefire-500-puzzling-error/src/test/java/surefire500/Suite.java
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: maven/surefire/trunk/surefire-providers/surefire-junit4/src/main/java/org/apache/maven/surefire/junit4/JUnit4Provider.java
URL: http://svn.apache.org/viewvc/maven/surefire/trunk/surefire-providers/surefire-junit4/src/main/java/org/apache/maven/surefire/junit4/JUnit4Provider.java?rev=1058735&r1=1058734&r2=1058735&view=diff
==============================================================================
--- maven/surefire/trunk/surefire-providers/surefire-junit4/src/main/java/org/apache/maven/surefire/junit4/JUnit4Provider.java
(original)
+++ maven/surefire/trunk/surefire-providers/surefire-junit4/src/main/java/org/apache/maven/surefire/junit4/JUnit4Provider.java
Thu Jan 13 20:27:08 2011
@@ -24,6 +24,7 @@ import org.apache.maven.surefire.common.
 import org.apache.maven.surefire.common.junit4.JUnit4TestChecker;
 import org.apache.maven.surefire.providerapi.ProviderParameters;
 import org.apache.maven.surefire.providerapi.SurefireProvider;
+import org.apache.maven.surefire.report.PojoStackTraceWriter;
 import org.apache.maven.surefire.report.ReportEntry;
 import org.apache.maven.surefire.report.Reporter;
 import org.apache.maven.surefire.report.ReporterException;
@@ -111,7 +112,20 @@ public class JUnit4Provider
 
         reporter.testSetStarting( report );
 
-        JUnit4TestSet.execute( clazz, listeners );
+        try
+        {
+            JUnit4TestSet.execute( clazz, listeners );
+        }
+        catch ( TestSetFailedException e )
+        {
+          throw e;
+        }
+        catch ( Throwable e )
+        {
+            reporter.testFailed( new SimpleReportEntry( report.getSourceName(), report.getName(),
+                                                        new PojoStackTraceWriter( report.getSourceName(),
+                                                                                  report.getName(),
e ) ) );
+        }
 
         reporter.testSetCompleted( report );
     }



Mime
View raw message