You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@maven.apache.org by Raphael Bossek <ra...@googlemail.com> on 2010/12/08 14:05:10 UTC

maven-surefire-plugin/maven3: junit4 and powermock/easymock support

Hi, you can find my simple project as ZIP and Maven3 project at the
following zip download url: http://bit.ly/hpVtYc
The mvn.log and org.raboss.javaexercise.ClassDefinitionTest.txt files
(part of the zip archive) document the problem.
To reproduce start "mvn test"

Using PowerMock 1.4.6 and maven-surefire-plugin 2.5

-------------------------------------------------------------------------------
Test set: org.raboss.javaexercise.ClassDefinitionTest
-------------------------------------------------------------------------------
Tests run: 2, Failures: 1, Errors: 0, Skipped: 0, Time elapsed: 0.149
sec <<< FAILURE!
org.raboss.javaexercise.ClassDefinitionTest.testStaticMainMethods()
Time elapsed: 0.07 sec  <<< FAILURE!
java.lang.IllegalArgumentException: Cannot subclass final class class
org.slf4j.LoggerFactory
       at net.sf.cglib.proxy.Enhancer.generateClass(Enhancer.java:446)
       at
net.sf.cglib.core.DefaultGeneratorStrategy.generate(DefaultGeneratorStrategy.java:
25)
       at
net.sf.cglib.core.AbstractClassGenerator.create(AbstractClassGenerator.java:
216)
       at net.sf.cglib.proxy.Enhancer.createHelper(Enhancer.java:377)
       at net.sf.cglib.proxy.Enhancer.createClass(Enhancer.java:317)
       at
org.easymock.internal.ClassProxyFactory.createProxy(ClassProxyFactory.java:
181)
       at org.easymock.internal.MocksControl.createMock(MocksControl.java:
60)
       at org.powermock.api.easymock.PowerMock.doCreateMock(PowerMock.java:
2211)
       at org.powermock.api.easymock.PowerMock.doMock(PowerMock.java:2162)
       at org.powermock.api.easymock.PowerMock.mockStatic(PowerMock.java:
296)
       at
org.raboss.javaexercise.ClassDefinitionTest.testStaticMainMethods(ClassDefinitionTest.java:
45)

Here the test class src/test/java/org/raboss/javaexercise/
ClassDefinitionTest.java (from this zip archive):

package org.raboss.javaexercise;

import static org.powermock.api.easymock.PowerMock.createMock;
import static org.powermock.api.easymock.PowerMock.replayAll;
import static org.powermock.api.easymock.PowerMock.verifyAll;
import static org.powermock.api.easymock.PowerMock.mockStatic;
import static org.easymock.EasyMock.expect;

import org.junit.Test;
import org.junit.runner.RunWith;
import org.powermock.core.classloader.annotations.*;
import org.powermock.modules.junit4.PowerMockRunner;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

@RunWith(PowerMockRunner.class)
@PrepareForTest({Logger.class, LoggerFactory.class,
ClassDefinition.class})
@SuppressStaticInitializationFor({"org.slf4j.LoggerFactory"})
public class ClassDefinitionTest {
       @Test public void testNonDefaultConstructur() {
               final String msg = "testNonDefaultConstructur";
               Logger mock = createMock(Logger.class);
               mock.info(msg);
               replayAll();
               ClassDefinition probe = new ClassDefinition(mock);
               probe.process(msg);
               verifyAll();
       }

       @Test public void testStaticMainMethods() {
               final String[] msg = new String[] {"testStaticMainMethod"};
               Logger mockLogger = createMock(Logger.class);
               // Mock all static methods.
               mockStatic(LoggerFactory.class);

expect(LoggerFactory.getLogger(ClassDefinition.class)).andReturn(mockLogger);
               mockLogger.info(msg[0]);
               replayAll();
               ClassDefinition.main(msg);
               verifyAll();
       }
}

The class under test (src/main/java/org/raboss/javaexercise/
ClassDefinition.java) looks like:

package org.raboss.javaexercise;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class ClassDefinition {
       private Logger logger;
       ClassDefinition(Logger logger) {
               this.logger = logger;
       }
       ClassDefinition() {
               this(LoggerFactory.getLogger(ClassDefinition.class));
       }
       public static void main(final String[] args) {
               ClassDefinition cd = new ClassDefinition();
               if(0 == args.length) {
                       args[0] = "main";
               }
               cd.process(args[0]);
       }
       public final void setLogger(Logger logger) {
               this.logger = logger;
       }
       public final void process(String msg) {
               logger.info(msg);
       }
}

The mvn.log file contains the following information that is related to
this issue:
---8<---8<---8<---8<---8<---8<---8<---8<---8<---8<---8<---8<---8<---
[DEBUG] Configuring mojo
org.apache.maven.plugins:maven-surefire-plugin:2.5:test from plugin
realm ClassRealm[plugin>org.apache.maven.plugins:maven-surefire-plugin:2.5,
parent: sun.misc.Launcher$AppClassLoader@f4a24a]
[DEBUG] Configuring mojo
'org.apache.maven.plugins:maven-surefire-plugin:2.5:test' with basic
configurator -->
[DEBUG]   (f) basedir = /home/bossekr/workspace/exercise-1-1
[DEBUG]   (f) childDelegation = false
[DEBUG]   (f) classesDirectory =
/home/bossekr/workspace/exercise-1-1/target/classes
[DEBUG]   (f) classpathElements =
[/home/bossekr/workspace/exercise-1-1/target/test-classes,
/home/bossekr/workspace/exercise-1-1/target/classes,
/home/bossekr/.m2/repository/org/slf4j/slf4j-api/1.6.1/slf4j-api-1.6.1.jar,
/home/bossekr/.m2/repository/org/slf4j/slf4j-log4j12/1.6.1/slf4j-log4j12-1.6.1.jar,
/home/bossekr/.m2/repository/log4j/log4j/1.2.16/log4j-1.2.16.jar,
/home/bossekr/.m2/repository/org/easymock/easymock/3.0/easymock-3.0.jar,
/home/bossekr/.m2/repository/org/powermock/powermock-module-junit4/1.4.6/powermock-module-junit4-1.4.6.jar,
/home/bossekr/.m2/repository/org/powermock/powermock-module-junit4-common/1.4.6/powermock-module-junit4-common-1.4.6.jar,
/home/bossekr/.m2/repository/org/powermock/powermock-api-easymock/1.4.6/powermock-api-easymock-1.4.6.jar,
/home/bossekr/.m2/repository/org/powermock/powermock-api-support/1.4.6/powermock-api-support-1.4.6.jar,
/home/bossekr/.m2/repository/org/powermock/powermock-core/1.4.6/powermock-core-1.4.6.jar,
/home/bossekr/.m2/repository/org/javassist/javassist/3.13.0-GA/javassist-3.13.0-GA.jar,
/home/bossekr/.m2/repository/org/powermock/powermock-reflect/1.4.6/powermock-reflect-1.4.6.jar,
/home/bossekr/.m2/repository/cglib/cglib-nodep/2.2/cglib-nodep-2.2.jar,
/home/bossekr/.m2/repository/org/objenesis/objenesis/1.2/objenesis-1.2.jar,
/home/bossekr/.m2/repository/junit/junit/4.8.2/junit-4.8.2.jar]
[DEBUG]   (f) disableXmlReport = false
[DEBUG]   (f) enableAssertions = true
[DEBUG]   (f) forkMode = once
[DEBUG]   (f) junitArtifactName = org.powermock:powermock-module-junit4
[DEBUG]   (f) localRepository =        id: local
     url: file:///home/bossekr/.m2/repository/
  layout: none

[DEBUG]   (f) pluginArtifactMap =
{org.apache.maven.plugins:maven-surefire-plugin=org.apache.maven.plugins:maven-surefire-plugin:maven-plugin:2.5:,
org.apache.maven.surefire:surefire-booter=org.apache.maven.surefire:surefire-booter:jar:2.5:compile,
org.apache.maven.surefire:surefire-api=org.apache.maven.surefire:surefire-api:jar:2.5:compile,
org.codehaus.plexus:plexus-utils=org.codehaus.plexus:plexus-utils:jar:1.5.9:compile,
junit:junit=junit:junit:jar:3.8.1:compile,
org.apache.maven.reporting:maven-reporting-api=org.apache.maven.reporting:maven-reporting-api:jar:2.0.9:compile,
org.apache.maven.doxia:doxia-sink-api=org.apache.maven.doxia:doxia-sink-api:jar:1.0-alpha-10:compile,
commons-cli:commons-cli=commons-cli:commons-cli:jar:1.0:compile,
org.codehaus.plexus:plexus-interactivity-api=org.codehaus.plexus:plexus-interactivity-api:jar:1.0-alpha-4:compile}
[DEBUG]   (f) printSummary = true
[DEBUG]   (f) project = MavenProject:
org.raboss.javaexercises:exercise-1-1:0.0.1-SNAPSHOT @
/home/bossekr/workspace/exercise-1-1/pom.xml
[DEBUG]   (f) projectArtifactMap =
{org.slf4j:slf4j-api=org.slf4j:slf4j-api:jar:1.6.1:compile,
org.slf4j:slf4j-log4j12=org.slf4j:slf4j-log4j12:jar:1.6.1:compile,
log4j:log4j=log4j:log4j:jar:1.2.16:compile,
org.easymock:easymock=org.easymock:easymock:jar:3.0:test,
org.powermock:powermock-module-junit4=org.powermock:powermock-module-junit4:jar:1.4.6:test,
org.powermock:powermock-module-junit4-common=org.powermock:powermock-module-junit4-common:jar:1.4.6:test,
org.powermock:powermock-api-easymock=org.powermock:powermock-api-easymock:jar:1.4.6:test,
org.powermock:powermock-api-support=org.powermock:powermock-api-support:jar:1.4.6:test,
org.powermock:powermock-core=org.powermock:powermock-core:jar:1.4.6:test,
org.javassist:javassist=org.javassist:javassist:jar:3.13.0-GA:test,
org.powermock:powermock-reflect=org.powermock:powermock-reflect:jar:1.4.6:test,
cglib:cglib-nodep=cglib:cglib-nodep:jar:2.2:test,
org.objenesis:objenesis=org.objenesis:objenesis:jar:1.2:test,
junit:junit=junit:junit:jar:4.8.2:test}
[DEBUG]   (f) redirectTestOutputToFile = false
[DEBUG]   (f) remoteRepositories = [       id: central
     url: http://repo1.maven.org/maven2
  layout: default
snapshots: [enabled => false, update => daily]
 releases: [enabled => true, update => never]
]
[DEBUG]   (f) reportFormat = brief
[DEBUG]   (f) reportsDirectory =
/home/bossekr/workspace/exercise-1-1/target/surefire-reports
[DEBUG]   (f) session = org.apache.maven.execution.MavenSession@14b081b
[DEBUG]   (f) testClassesDirectory =
/home/bossekr/workspace/exercise-1-1/target/test-classes
[DEBUG]   (f) testNGArtifactName = org.testng:testng
[DEBUG]   (f) testSourceDirectory =
/home/bossekr/workspace/exercise-1-1/src/test/java
[DEBUG]   (f) trimStackTrace = true
[DEBUG]   (f) useFile = true
[DEBUG]   (f) useManifestOnlyJar = true
[DEBUG]   (f) workingDirectory = /home/bossekr/workspace/exercise-1-1
[DEBUG] -- end configuration --
[DEBUG] dummy:dummy:jar:1.0 (selected for null)
[DEBUG]   org.apache.maven.surefire:surefire-booter:jar:2.5:compile
(selected for compile)
[DEBUG]     org.apache.maven.surefire:surefire-api:jar:2.5:compile
(selected for compile)
[DEBUG] Adding to surefire booter test classpath:
/home/bossekr/.m2/repository/org/apache/maven/surefire/surefire-booter/2.5/surefire-booter-2.5.jar
[DEBUG] Adding to surefire booter test classpath:
/home/bossekr/.m2/repository/org/apache/maven/surefire/surefire-api/2.5/surefire-api-2.5.jar
[DEBUG] dummy:dummy:jar:1.0 (selected for null)
[DEBUG]   org.apache.maven.surefire:surefire-junit:jar:2.5:test
(selected for test)
[DEBUG]     junit:junit:jar:3.8.1:test (selected for test)
[DEBUG]     org.apache.maven.surefire:surefire-api:jar:2.5:test
(selected for test)
[DEBUG] Adding to surefire test classpath:
/home/bossekr/.m2/repository/org/apache/maven/surefire/surefire-junit/2.5/surefire-junit-2.5.jar
[DEBUG] Adding to surefire test classpath:
/home/bossekr/.m2/repository/junit/junit/3.8.1/junit-3.8.1.jar
[DEBUG] Adding to surefire test classpath:
/home/bossekr/.m2/repository/org/apache/maven/surefire/surefire-api/2.5/surefire-api-2.5.jar
[DEBUG] Test Classpath :
[DEBUG]   /home/bossekr/workspace/exercise-1-1/target/test-classes
[DEBUG]   /home/bossekr/workspace/exercise-1-1/target/classes
[DEBUG]   /home/bossekr/.m2/repository/org/slf4j/slf4j-api/1.6.1/slf4j-api-1.6.1.jar
[DEBUG]   /home/bossekr/.m2/repository/org/slf4j/slf4j-log4j12/1.6.1/slf4j-log4j12-1.6.1.jar
[DEBUG]   /home/bossekr/.m2/repository/log4j/log4j/1.2.16/log4j-1.2.16.jar
[DEBUG]   /home/bossekr/.m2/repository/org/easymock/easymock/3.0/easymock-3.0.jar
[DEBUG]   /home/bossekr/.m2/repository/org/powermock/powermock-module-junit4/1.4.6/powermock-module-junit4-1.4.6.jar
[DEBUG]   /home/bossekr/.m2/repository/org/powermock/powermock-module-junit4-common/1.4.6/powermock-module-junit4-common-1.4.6.jar
[DEBUG]   /home/bossekr/.m2/repository/org/powermock/powermock-api-easymock/1.4.6/powermock-api-easymock-1.4.6.jar
[DEBUG]   /home/bossekr/.m2/repository/org/powermock/powermock-api-support/1.4.6/powermock-api-support-1.4.6.jar
[DEBUG]   /home/bossekr/.m2/repository/org/powermock/powermock-core/1.4.6/powermock-core-1.4.6.jar
[DEBUG]   /home/bossekr/.m2/repository/org/javassist/javassist/3.13.0-GA/javassist-3.13.0-GA.jar
[DEBUG]   /home/bossekr/.m2/repository/org/powermock/powermock-reflect/1.4.6/powermock-reflect-1.4.6.jar
[DEBUG]   /home/bossekr/.m2/repository/cglib/cglib-nodep/2.2/cglib-nodep-2.2.jar
[DEBUG]   /home/bossekr/.m2/repository/org/objenesis/objenesis/1.2/objenesis-1.2.jar
[DEBUG]   /home/bossekr/.m2/repository/junit/junit/4.8.2/junit-4.8.2.jar
[DEBUG] Setting system property
[user.dir]=[/home/bossekr/workspace/exercise-1-1]
[DEBUG] Setting system property [localRepository]=[/home/bossekr/.m2/repository]
[DEBUG] Setting system property [basedir]=[/home/bossekr/workspace/exercise-1-1]
[DEBUG] Using JVM: /usr/lib/jvm/java-6-sun-1.6.0.22/jre/bin/java
[INFO] Surefire report directory:
/home/bossekr/workspace/exercise-1-1/target/surefire-reports
Forking command line: /bin/sh -c cd
/home/bossekr/workspace/exercise-1-1 &&
/usr/lib/jvm/java-6-sun-1.6.0.22/jre/bin/java -jar
/tmp/surefirebooter1922467988786498550.jar
/tmp/surefire4338078243845467245tmp
/tmp/surefire6033892985670471542tmp

-------------------------------------------------------
 T E S T S
-------------------------------------------------------
Running org.raboss.javaexercise.ClassDefinitionTest
Tests run: 2, Failures: 1, Errors: 0, Skipped: 0, Time elapsed: 0.13
sec <<< FAILURE!

Results :

Failed tests:
 org.raboss.javaexercise.ClassDefinitionTest.testStaticMainMethods()

Tests run: 2, Failures: 1, Errors: 0, Skipped: 0

--->8--->8--->8--->8--->8--->8--->8--->8--->8--->8--->8--->8--->8--->8---

The related pom.xml content is:
       <plugin>
                       <groupId>org.apache.maven.plugins</groupId>
                       <artifactId>maven-surefire-plugin</artifactId>
                       <version>2.5</version>
                       <configuration>

<junitArtifactName>org.powermock:powermock-module-junit4</junitArtifactName>
                       </configuration>
               </plugin>

I've written a small shell script using the same classpath files as
reported in the maven log:
--->8--->8--->8--->8--->8--->8--->8--->8--->8--->8--->8--->8--->8--->8---
cp="/home/bossekr/workspace/exercise-1-1/target/test-classes:/home/bossekr/workspace/exercise-1-1/target/classes:/home/bossekr/.m2/repository/org/slf4j/slf4j-api/1.6.1/slf4j-api-1.6.1.jar:/home/bossekr/.m2/repository/org/slf4j/slf4j-log4j12/1.6.1/slf4j-log4j12-1.6.1.jar:/home/bossekr/.m2/repository/log4j/log4j/1.2.16/log4j-1.2.16.jar:/home/bossekr/.m2/repository/org/easymock/easymock/3.0/easymock-3.0.jar:/home/bossekr/.m2/repository/org/powermock/powermock-module-junit4/1.4.6/powermock-module-junit4-1.4.6.jar:/home/bossekr/.m2/repository/org/powermock/powermock-module-junit4-common/1.4.6/powermock-module-junit4-common-1.4.6.jar:/home/bossekr/.m2/repository/org/powermock/powermock-api-easymock/1.4.6/powermock-api-easymock-1.4.6.jar:/home/bossekr/.m2/repository/org/powermock/powermock-api-support/1.4.6/powermock-api-support-1.4.6.jar:/home/bossekr/.m2/repository/org/powermock/powermock-core/1.4.6/powermock-core-1.4.6.jar:/home/bossekr/.m2/repository/org/javassist/javassist/3.13.0-GA/javassist-3.13.0-GA.jar:/home/bossekr/.m2/repository/org/powermock/powermock-reflect/1.4.6/powermock-reflect-1.4.6.jar:/home/bossekr/.m2/repository/cglib/cglib-nodep/2.2/cglib-nodep-2.2.jar:/home/bossekr/.m2/repository/org/objenesis/objenesis/1.2/objenesis-1.2.jar"
cp="$cp:/home/bossekr/.m2/repository/junit/junit/4.8.2/junit-4.8.2.jar"
java -cp $cp org.junit.runner.JUnitCore
org.raboss.javaexercise.ClassDefinitionTest
---8<---8<---8<---8<---8<---8<---8<---8<---8<---8<---8<---8<---8<---8<---

This scripts works as expected so I thing there is some classpath
magic with the maven-surefire-plugin ?

Interesting issue discussed about surefire and default junit can be fauld here:
http://stackoverflow.com/questions/2182376/surefire-is-not-picking-up-junit-4-tests

Any help with this issue would be appreciated.
Greetings,
Raphael

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
For additional commands, e-mail: users-help@maven.apache.org


Re: maven-surefire-plugin/maven3: junit4 and powermock/easymock support

Posted by Kristian Rosenvold <kr...@gmail.com>.
Works fine on my machine using java 1.6 and maven 3.0.1. I had to remove
the sonar plugin though, because I don't have your database.

Kristian


on., 08.12.2010 kl. 14.05 +0100, skrev Raphael Bossek:
> Hi, you can find my simple project as ZIP and Maven3 project at the
> following zip download url: http://bit.ly/hpVtYc
> The mvn.log and org.raboss.javaexercise.ClassDefinitionTest.txt files
> (part of the zip archive) document the problem.
> To reproduce start "mvn test"
> 
> Using PowerMock 1.4.6 and maven-surefire-plugin 2.5
> 
> -------------------------------------------------------------------------------
> Test set: org.raboss.javaexercise.ClassDefinitionTest
> -------------------------------------------------------------------------------
> Tests run: 2, Failures: 1, Errors: 0, Skipped: 0, Time elapsed: 0.149
> sec <<< FAILURE!
> org.raboss.javaexercise.ClassDefinitionTest.testStaticMainMethods()
> Time elapsed: 0.07 sec  <<< FAILURE!
> java.lang.IllegalArgumentException: Cannot subclass final class class
> org.slf4j.LoggerFactory
>        at net.sf.cglib.proxy.Enhancer.generateClass(Enhancer.java:446)
>        at
> net.sf.cglib.core.DefaultGeneratorStrategy.generate(DefaultGeneratorStrategy.java:
> 25)
>        at
> net.sf.cglib.core.AbstractClassGenerator.create(AbstractClassGenerator.java:
> 216)
>        at net.sf.cglib.proxy.Enhancer.createHelper(Enhancer.java:377)
>        at net.sf.cglib.proxy.Enhancer.createClass(Enhancer.java:317)
>        at
> org.easymock.internal.ClassProxyFactory.createProxy(ClassProxyFactory.java:
> 181)
>        at org.easymock.internal.MocksControl.createMock(MocksControl.java:
> 60)
>        at org.powermock.api.easymock.PowerMock.doCreateMock(PowerMock.java:
> 2211)
>        at org.powermock.api.easymock.PowerMock.doMock(PowerMock.java:2162)
>        at org.powermock.api.easymock.PowerMock.mockStatic(PowerMock.java:
> 296)
>        at
> org.raboss.javaexercise.ClassDefinitionTest.testStaticMainMethods(ClassDefinitionTest.java:
> 45)
> 
> Here the test class src/test/java/org/raboss/javaexercise/
> ClassDefinitionTest.java (from this zip archive):
> 
> package org.raboss.javaexercise;
> 
> import static org.powermock.api.easymock.PowerMock.createMock;
> import static org.powermock.api.easymock.PowerMock.replayAll;
> import static org.powermock.api.easymock.PowerMock.verifyAll;
> import static org.powermock.api.easymock.PowerMock.mockStatic;
> import static org.easymock.EasyMock.expect;
> 
> import org.junit.Test;
> import org.junit.runner.RunWith;
> import org.powermock.core.classloader.annotations.*;
> import org.powermock.modules.junit4.PowerMockRunner;
> import org.slf4j.Logger;
> import org.slf4j.LoggerFactory;
> 
> @RunWith(PowerMockRunner.class)
> @PrepareForTest({Logger.class, LoggerFactory.class,
> ClassDefinition.class})
> @SuppressStaticInitializationFor({"org.slf4j.LoggerFactory"})
> public class ClassDefinitionTest {
>        @Test public void testNonDefaultConstructur() {
>                final String msg = "testNonDefaultConstructur";
>                Logger mock = createMock(Logger.class);
>                mock.info(msg);
>                replayAll();
>                ClassDefinition probe = new ClassDefinition(mock);
>                probe.process(msg);
>                verifyAll();
>        }
> 
>        @Test public void testStaticMainMethods() {
>                final String[] msg = new String[] {"testStaticMainMethod"};
>                Logger mockLogger = createMock(Logger.class);
>                // Mock all static methods.
>                mockStatic(LoggerFactory.class);
> 
> expect(LoggerFactory.getLogger(ClassDefinition.class)).andReturn(mockLogger);
>                mockLogger.info(msg[0]);
>                replayAll();
>                ClassDefinition.main(msg);
>                verifyAll();
>        }
> }
> 
> The class under test (src/main/java/org/raboss/javaexercise/
> ClassDefinition.java) looks like:
> 
> package org.raboss.javaexercise;
> 
> import org.slf4j.Logger;
> import org.slf4j.LoggerFactory;
> 
> public class ClassDefinition {
>        private Logger logger;
>        ClassDefinition(Logger logger) {
>                this.logger = logger;
>        }
>        ClassDefinition() {
>                this(LoggerFactory.getLogger(ClassDefinition.class));
>        }
>        public static void main(final String[] args) {
>                ClassDefinition cd = new ClassDefinition();
>                if(0 == args.length) {
>                        args[0] = "main";
>                }
>                cd.process(args[0]);
>        }
>        public final void setLogger(Logger logger) {
>                this.logger = logger;
>        }
>        public final void process(String msg) {
>                logger.info(msg);
>        }
> }
> 
> The mvn.log file contains the following information that is related to
> this issue:
> ---8<---8<---8<---8<---8<---8<---8<---8<---8<---8<---8<---8<---8<---
> [DEBUG] Configuring mojo
> org.apache.maven.plugins:maven-surefire-plugin:2.5:test from plugin
> realm ClassRealm[plugin>org.apache.maven.plugins:maven-surefire-plugin:2.5,
> parent: sun.misc.Launcher$AppClassLoader@f4a24a]
> [DEBUG] Configuring mojo
> 'org.apache.maven.plugins:maven-surefire-plugin:2.5:test' with basic
> configurator -->
> [DEBUG]   (f) basedir = /home/bossekr/workspace/exercise-1-1
> [DEBUG]   (f) childDelegation = false
> [DEBUG]   (f) classesDirectory =
> /home/bossekr/workspace/exercise-1-1/target/classes
> [DEBUG]   (f) classpathElements =
> [/home/bossekr/workspace/exercise-1-1/target/test-classes,
> /home/bossekr/workspace/exercise-1-1/target/classes,
> /home/bossekr/.m2/repository/org/slf4j/slf4j-api/1.6.1/slf4j-api-1.6.1.jar,
> /home/bossekr/.m2/repository/org/slf4j/slf4j-log4j12/1.6.1/slf4j-log4j12-1.6.1.jar,
> /home/bossekr/.m2/repository/log4j/log4j/1.2.16/log4j-1.2.16.jar,
> /home/bossekr/.m2/repository/org/easymock/easymock/3.0/easymock-3.0.jar,
> /home/bossekr/.m2/repository/org/powermock/powermock-module-junit4/1.4.6/powermock-module-junit4-1.4.6.jar,
> /home/bossekr/.m2/repository/org/powermock/powermock-module-junit4-common/1.4.6/powermock-module-junit4-common-1.4.6.jar,
> /home/bossekr/.m2/repository/org/powermock/powermock-api-easymock/1.4.6/powermock-api-easymock-1.4.6.jar,
> /home/bossekr/.m2/repository/org/powermock/powermock-api-support/1.4.6/powermock-api-support-1.4.6.jar,
> /home/bossekr/.m2/repository/org/powermock/powermock-core/1.4.6/powermock-core-1.4.6.jar,
> /home/bossekr/.m2/repository/org/javassist/javassist/3.13.0-GA/javassist-3.13.0-GA.jar,
> /home/bossekr/.m2/repository/org/powermock/powermock-reflect/1.4.6/powermock-reflect-1.4.6.jar,
> /home/bossekr/.m2/repository/cglib/cglib-nodep/2.2/cglib-nodep-2.2.jar,
> /home/bossekr/.m2/repository/org/objenesis/objenesis/1.2/objenesis-1.2.jar,
> /home/bossekr/.m2/repository/junit/junit/4.8.2/junit-4.8.2.jar]
> [DEBUG]   (f) disableXmlReport = false
> [DEBUG]   (f) enableAssertions = true
> [DEBUG]   (f) forkMode = once
> [DEBUG]   (f) junitArtifactName = org.powermock:powermock-module-junit4
> [DEBUG]   (f) localRepository =        id: local
>      url: file:///home/bossekr/.m2/repository/
>   layout: none
> 
> [DEBUG]   (f) pluginArtifactMap =
> {org.apache.maven.plugins:maven-surefire-plugin=org.apache.maven.plugins:maven-surefire-plugin:maven-plugin:2.5:,
> org.apache.maven.surefire:surefire-booter=org.apache.maven.surefire:surefire-booter:jar:2.5:compile,
> org.apache.maven.surefire:surefire-api=org.apache.maven.surefire:surefire-api:jar:2.5:compile,
> org.codehaus.plexus:plexus-utils=org.codehaus.plexus:plexus-utils:jar:1.5.9:compile,
> junit:junit=junit:junit:jar:3.8.1:compile,
> org.apache.maven.reporting:maven-reporting-api=org.apache.maven.reporting:maven-reporting-api:jar:2.0.9:compile,
> org.apache.maven.doxia:doxia-sink-api=org.apache.maven.doxia:doxia-sink-api:jar:1.0-alpha-10:compile,
> commons-cli:commons-cli=commons-cli:commons-cli:jar:1.0:compile,
> org.codehaus.plexus:plexus-interactivity-api=org.codehaus.plexus:plexus-interactivity-api:jar:1.0-alpha-4:compile}
> [DEBUG]   (f) printSummary = true
> [DEBUG]   (f) project = MavenProject:
> org.raboss.javaexercises:exercise-1-1:0.0.1-SNAPSHOT @
> /home/bossekr/workspace/exercise-1-1/pom.xml
> [DEBUG]   (f) projectArtifactMap =
> {org.slf4j:slf4j-api=org.slf4j:slf4j-api:jar:1.6.1:compile,
> org.slf4j:slf4j-log4j12=org.slf4j:slf4j-log4j12:jar:1.6.1:compile,
> log4j:log4j=log4j:log4j:jar:1.2.16:compile,
> org.easymock:easymock=org.easymock:easymock:jar:3.0:test,
> org.powermock:powermock-module-junit4=org.powermock:powermock-module-junit4:jar:1.4.6:test,
> org.powermock:powermock-module-junit4-common=org.powermock:powermock-module-junit4-common:jar:1.4.6:test,
> org.powermock:powermock-api-easymock=org.powermock:powermock-api-easymock:jar:1.4.6:test,
> org.powermock:powermock-api-support=org.powermock:powermock-api-support:jar:1.4.6:test,
> org.powermock:powermock-core=org.powermock:powermock-core:jar:1.4.6:test,
> org.javassist:javassist=org.javassist:javassist:jar:3.13.0-GA:test,
> org.powermock:powermock-reflect=org.powermock:powermock-reflect:jar:1.4.6:test,
> cglib:cglib-nodep=cglib:cglib-nodep:jar:2.2:test,
> org.objenesis:objenesis=org.objenesis:objenesis:jar:1.2:test,
> junit:junit=junit:junit:jar:4.8.2:test}
> [DEBUG]   (f) redirectTestOutputToFile = false
> [DEBUG]   (f) remoteRepositories = [       id: central
>      url: http://repo1.maven.org/maven2
>   layout: default
> snapshots: [enabled => false, update => daily]
>  releases: [enabled => true, update => never]
> ]
> [DEBUG]   (f) reportFormat = brief
> [DEBUG]   (f) reportsDirectory =
> /home/bossekr/workspace/exercise-1-1/target/surefire-reports
> [DEBUG]   (f) session = org.apache.maven.execution.MavenSession@14b081b
> [DEBUG]   (f) testClassesDirectory =
> /home/bossekr/workspace/exercise-1-1/target/test-classes
> [DEBUG]   (f) testNGArtifactName = org.testng:testng
> [DEBUG]   (f) testSourceDirectory =
> /home/bossekr/workspace/exercise-1-1/src/test/java
> [DEBUG]   (f) trimStackTrace = true
> [DEBUG]   (f) useFile = true
> [DEBUG]   (f) useManifestOnlyJar = true
> [DEBUG]   (f) workingDirectory = /home/bossekr/workspace/exercise-1-1
> [DEBUG] -- end configuration --
> [DEBUG] dummy:dummy:jar:1.0 (selected for null)
> [DEBUG]   org.apache.maven.surefire:surefire-booter:jar:2.5:compile
> (selected for compile)
> [DEBUG]     org.apache.maven.surefire:surefire-api:jar:2.5:compile
> (selected for compile)
> [DEBUG] Adding to surefire booter test classpath:
> /home/bossekr/.m2/repository/org/apache/maven/surefire/surefire-booter/2.5/surefire-booter-2.5.jar
> [DEBUG] Adding to surefire booter test classpath:
> /home/bossekr/.m2/repository/org/apache/maven/surefire/surefire-api/2.5/surefire-api-2.5.jar
> [DEBUG] dummy:dummy:jar:1.0 (selected for null)
> [DEBUG]   org.apache.maven.surefire:surefire-junit:jar:2.5:test
> (selected for test)
> [DEBUG]     junit:junit:jar:3.8.1:test (selected for test)
> [DEBUG]     org.apache.maven.surefire:surefire-api:jar:2.5:test
> (selected for test)
> [DEBUG] Adding to surefire test classpath:
> /home/bossekr/.m2/repository/org/apache/maven/surefire/surefire-junit/2.5/surefire-junit-2.5.jar
> [DEBUG] Adding to surefire test classpath:
> /home/bossekr/.m2/repository/junit/junit/3.8.1/junit-3.8.1.jar
> [DEBUG] Adding to surefire test classpath:
> /home/bossekr/.m2/repository/org/apache/maven/surefire/surefire-api/2.5/surefire-api-2.5.jar
> [DEBUG] Test Classpath :
> [DEBUG]   /home/bossekr/workspace/exercise-1-1/target/test-classes
> [DEBUG]   /home/bossekr/workspace/exercise-1-1/target/classes
> [DEBUG]   /home/bossekr/.m2/repository/org/slf4j/slf4j-api/1.6.1/slf4j-api-1.6.1.jar
> [DEBUG]   /home/bossekr/.m2/repository/org/slf4j/slf4j-log4j12/1.6.1/slf4j-log4j12-1.6.1.jar
> [DEBUG]   /home/bossekr/.m2/repository/log4j/log4j/1.2.16/log4j-1.2.16.jar
> [DEBUG]   /home/bossekr/.m2/repository/org/easymock/easymock/3.0/easymock-3.0.jar
> [DEBUG]   /home/bossekr/.m2/repository/org/powermock/powermock-module-junit4/1.4.6/powermock-module-junit4-1.4.6.jar
> [DEBUG]   /home/bossekr/.m2/repository/org/powermock/powermock-module-junit4-common/1.4.6/powermock-module-junit4-common-1.4.6.jar
> [DEBUG]   /home/bossekr/.m2/repository/org/powermock/powermock-api-easymock/1.4.6/powermock-api-easymock-1.4.6.jar
> [DEBUG]   /home/bossekr/.m2/repository/org/powermock/powermock-api-support/1.4.6/powermock-api-support-1.4.6.jar
> [DEBUG]   /home/bossekr/.m2/repository/org/powermock/powermock-core/1.4.6/powermock-core-1.4.6.jar
> [DEBUG]   /home/bossekr/.m2/repository/org/javassist/javassist/3.13.0-GA/javassist-3.13.0-GA.jar
> [DEBUG]   /home/bossekr/.m2/repository/org/powermock/powermock-reflect/1.4.6/powermock-reflect-1.4.6.jar
> [DEBUG]   /home/bossekr/.m2/repository/cglib/cglib-nodep/2.2/cglib-nodep-2.2.jar
> [DEBUG]   /home/bossekr/.m2/repository/org/objenesis/objenesis/1.2/objenesis-1.2.jar
> [DEBUG]   /home/bossekr/.m2/repository/junit/junit/4.8.2/junit-4.8.2.jar
> [DEBUG] Setting system property
> [user.dir]=[/home/bossekr/workspace/exercise-1-1]
> [DEBUG] Setting system property [localRepository]=[/home/bossekr/.m2/repository]
> [DEBUG] Setting system property [basedir]=[/home/bossekr/workspace/exercise-1-1]
> [DEBUG] Using JVM: /usr/lib/jvm/java-6-sun-1.6.0.22/jre/bin/java
> [INFO] Surefire report directory:
> /home/bossekr/workspace/exercise-1-1/target/surefire-reports
> Forking command line: /bin/sh -c cd
> /home/bossekr/workspace/exercise-1-1 &&
> /usr/lib/jvm/java-6-sun-1.6.0.22/jre/bin/java -jar
> /tmp/surefirebooter1922467988786498550.jar
> /tmp/surefire4338078243845467245tmp
> /tmp/surefire6033892985670471542tmp
> 
> -------------------------------------------------------
>  T E S T S
> -------------------------------------------------------
> Running org.raboss.javaexercise.ClassDefinitionTest
> Tests run: 2, Failures: 1, Errors: 0, Skipped: 0, Time elapsed: 0.13
> sec <<< FAILURE!
> 
> Results :
> 
> Failed tests:
>  org.raboss.javaexercise.ClassDefinitionTest.testStaticMainMethods()
> 
> Tests run: 2, Failures: 1, Errors: 0, Skipped: 0
> 
> --->8--->8--->8--->8--->8--->8--->8--->8--->8--->8--->8--->8--->8--->8---
> 
> The related pom.xml content is:
>        <plugin>
>                        <groupId>org.apache.maven.plugins</groupId>
>                        <artifactId>maven-surefire-plugin</artifactId>
>                        <version>2.5</version>
>                        <configuration>
> 
> <junitArtifactName>org.powermock:powermock-module-junit4</junitArtifactName>
>                        </configuration>
>                </plugin>
> 
> I've written a small shell script using the same classpath files as
> reported in the maven log:
> --->8--->8--->8--->8--->8--->8--->8--->8--->8--->8--->8--->8--->8--->8---
> cp="/home/bossekr/workspace/exercise-1-1/target/test-classes:/home/bossekr/workspace/exercise-1-1/target/classes:/home/bossekr/.m2/repository/org/slf4j/slf4j-api/1.6.1/slf4j-api-1.6.1.jar:/home/bossekr/.m2/repository/org/slf4j/slf4j-log4j12/1.6.1/slf4j-log4j12-1.6.1.jar:/home/bossekr/.m2/repository/log4j/log4j/1.2.16/log4j-1.2.16.jar:/home/bossekr/.m2/repository/org/easymock/easymock/3.0/easymock-3.0.jar:/home/bossekr/.m2/repository/org/powermock/powermock-module-junit4/1.4.6/powermock-module-junit4-1.4.6.jar:/home/bossekr/.m2/repository/org/powermock/powermock-module-junit4-common/1.4.6/powermock-module-junit4-common-1.4.6.jar:/home/bossekr/.m2/repository/org/powermock/powermock-api-easymock/1.4.6/powermock-api-easymock-1.4.6.jar:/home/bossekr/.m2/repository/org/powermock/powermock-api-support/1.4.6/powermock-api-support-1.4.6.jar:/home/bossekr/.m2/repository/org/powermock/powermock-core/1.4.6/powermock-core-1.4.6.jar:/home/bossekr/.m2/repository/org/javassist/javassist/3.13.0-GA/javassist-3.13.0-GA.jar:/home/bossekr/.m2/repository/org/powermock/powermock-reflect/1.4.6/powermock-reflect-1.4.6.jar:/home/bossekr/.m2/repository/cglib/cglib-nodep/2.2/cglib-nodep-2.2.jar:/home/bossekr/.m2/repository/org/objenesis/objenesis/1.2/objenesis-1.2.jar"
> cp="$cp:/home/bossekr/.m2/repository/junit/junit/4.8.2/junit-4.8.2.jar"
> java -cp $cp org.junit.runner.JUnitCore
> org.raboss.javaexercise.ClassDefinitionTest
> ---8<---8<---8<---8<---8<---8<---8<---8<---8<---8<---8<---8<---8<---8<---
> 
> This scripts works as expected so I thing there is some classpath
> magic with the maven-surefire-plugin ?
> 
> Interesting issue discussed about surefire and default junit can be fauld here:
> http://stackoverflow.com/questions/2182376/surefire-is-not-picking-up-junit-4-tests
> 
> Any help with this issue would be appreciated.
> Greetings,
> Raphael
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
> For additional commands, e-mail: users-help@maven.apache.org
> 



---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
For additional commands, e-mail: users-help@maven.apache.org