You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@maven.apache.org by Wim Vandewalle <wv...@mail.be> on 2005/05/03 12:02:12 UTC

Maven Junit test ClassNotFoundException

Hi

I started recently setting up a test with Maven.
I followed the steps described in "Getting started - Creating a project".
I added 2 simple classes:

- src/main/java/code/Tryit.java
- src/test/java/TryitTest.java  (unit test)

The java classes compile ok:

- target/classes/main/java/code/TryIt.class
- target/test-classes/test/java/TryitTest.class

However when running the unit tests it looks like the test class is not in JUnit's classpath:

C:\repositories\eclipse\maventest>maven test:test
 __  __
|  \/  |__ _Apache__ ___
| |\/| / _` \ V / -_) ' \  ~ intelligent projects ~
|_|  |_\__,_|\_/\___|_||_|  v. 1.0.2

build:start:

java:prepare-filesystem:

java:compile:
    [echo] Compiling to C:\repositories\eclipse\maventest/target/classes
    [echo]
==========================================================

  NOTE: Targetting JVM 1.4, classes
  will not run on earlier JVMs

==========================================================

    [javac] Compiling 1 source file to C:\repositories\eclipse\maventest\target\classes

java:jar-resources:

test:prepare-filesystem:

test:test-resources:

test:compile:
    [javac] Compiling 1 source file to C:\repositories\eclipse\maventest\target\test-classes

test:test:
    [junit] Running 	
    [junit] Tests run: 1, Failures: 0, Errors: 1, Time elapsed: 0 sec
    [junit] Testsuite: TryItTest
    [junit] Tests run: 1, Failures: 0, Errors: 1, Time elapsed: 0 sec
    [junit]
    [junit] Null Test:  Caused an ERROR
    [junit] TryItTest
    [junit] java.lang.ClassNotFoundException: TryItTest
    [junit]     at java.net.URLClassLoader$1.run(URLClassLoader.java:199)
    [junit]     at java.security.AccessController.doPrivileged(Native Method)
    [junit]     at java.net.URLClassLoader.findClass(URLClassLoader.java:187)
    [junit]     at java.lang.ClassLoader.loadClass(ClassLoader.java:289)
    [junit]     at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:274)
    [junit]     at java.lang.ClassLoader.loadClass(ClassLoader.java:235)
    [junit]     at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:302)
    [junit]     at java.lang.Class.forName0(Native Method)
    [junit]     at java.lang.Class.forName(Class.java:141)
    [junit]
    [junit]
    [junit] [ERROR] TEST TryItTest FAILED

BUILD FAILED
File...... C:\Documents and Settings\wvdw\.maven\cache\maven-test-plugin-1.6.2\plugin.jelly
Element... fail
Line...... 181
Column.... 54
There were test failures.
Total time: 3 seconds
Finished at: Tue May 03 11:44:52 CEST 2005


Any ideas?

Wim
-----------------------------------------------------
Mail.be, WebMail and Virtual Office
http://www.mail.be


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


Re: Maven Junit test ClassNotFoundException

Posted by Jamie Bisotti <jb...@gmail.com>.
In a word...no.  The package statment at the top of the .java file and
the Java compiler also have a say in where the .class file goes. 
Looks like one of your files declares a package but the other does
not; they both should.

On 5/3/05, Wim Vandewalle <wv...@mail.be> wrote:
> The POM is identical to the 10 minute test at the Maven site:
> 
> <project>
>   <groupId>sample</groupId>
>   <artifactId>sample-echo</artifactId>
>   <version>1.0-SNAPSHOT</version>
>   <dependencies>
>     <dependency>
>       <groupId>log4j</groupId>
>       <artifactId>log4j</artifactId>
>       <version>1.2.8</version>
>     </dependency>
>   </dependencies>
>   <build>
>     <sourceDirectory>src/main/java</sourceDirectory>
>     <unitTestSourceDirectory>src/test/java</unitTestSourceDirectory>
>     <resources>
>       <resource>
>         <directory>src/main/resources</directory>
>       </resource>
>     </resources>
>     <unitTest>
>       <includes>
>         <include>**/*Test.java</include>
>       </includes>
>     </unitTest>
>   </build>
> </project>
> 
> If I understand this right, there is a problem with the destination location of the class files:
> 
> "main/java/" in: target/classes/main/java/code/TryIt.class
> "test/java/" in: target/test-classes/test/java/TryitTest.class
> 
> Isn't it up to Maven to decide where to put the class files?
> 
> Wim
> 
> > ----------------------------------------
> > From: Samuel Le Berrigaud <sa...@gmail.com>
> > Sent: Tue May 03 12:12:21 CEST 2005
> > To: Maven Users List <us...@maven.apache.org>, Wim Vandewalle <wv...@mail.be>
> > Subject: Re: Maven Junit test ClassNotFoundException
> >
> >
> > Hi,
> >
> > there is something strange between your source files and your class files.
> >
> > Is the pakcage of Tryit.java the default package or the "code" package ?
> >
> > First I would say have the same directory structure inside your
> > src/main and src/test, and the same package for the class being tested
> > and the test class.
> >
> > Second, if your Tryit.java uses the default package it should then be:
> >
> > - target/classes/Tryit.class
> > - target/test-classes/TryitTest.class
> >
> > if it uses the "code" pakcage it should be:
> >
> > - target/classes/code/Tryit.class
> > - target/test-classes/code/TryitTest.class
> >
> > I think the exception comes from those points...
> > I would need a extract of your pom (project.xml) to be more precise.
> >
> > SaM
> >
> > On 5/3/05, Wim Vandewalle <wv...@mail.be> wrote:
> > > Hi
> > >
> > > I started recently setting up a test with Maven.
> > > I followed the steps described in "Getting started - Creating a project".
> > > I added 2 simple classes:
> > >
> > > - src/main/java/code/Tryit.java
> > > - src/test/java/TryitTest.java  (unit test)
> > >
> > > The java classes compile ok:
> > >
> > > - target/classes/main/java/code/TryIt.class
> > > - target/test-classes/test/java/TryitTest.class
> > >
> > > However when running the unit tests it looks like the test class is not in JUnit's classpath:
> > >
> > > C:\repositories\eclipse\maventest>maven test:test
> > > __  __
> > > |  \/  |__ _Apache__ ___
> > > | |\/| / _` \ V / -_) ' \  ~ intelligent projects ~
> > > |_|  |_\__,_|\_/\___|_||_|  v. 1.0.2
> > >
> > > build:start:
> > >
> > > java:prepare-filesystem:
> > >
> > > java:compile:
> > >    [echo] Compiling to C:\repositories\eclipse\maventest/target/classes
> > >    [echo]
> > > ==========================================================
> > >
> > >  NOTE: Targetting JVM 1.4, classes
> > >  will not run on earlier JVMs
> > >
> > > ==========================================================
> > >
> > >    [javac] Compiling 1 source file to C:\repositories\eclipse\maventest\target\classes
> > >
> > > java:jar-resources:
> > >
> > > test:prepare-filesystem:
> > >
> > > test:test-resources:
> > >
> > > test:compile:
> > >    [javac] Compiling 1 source file to C:\repositories\eclipse\maventest\target\test-classes
> > >
> > > test:test:
> > >    [junit] Running
> > >    [junit] Tests run: 1, Failures: 0, Errors: 1, Time elapsed: 0 sec
> > >    [junit] Testsuite: TryItTest
> > >    [junit] Tests run: 1, Failures: 0, Errors: 1, Time elapsed: 0 sec
> > >    [junit]
> > >    [junit] Null Test:  Caused an ERROR
> > >    [junit] TryItTest
> > >    [junit] java.lang.ClassNotFoundException: TryItTest
> > >    [junit]     at java.net.URLClassLoader$1.run(URLClassLoader.java:199)
> > >    [junit]     at java.security.AccessController.doPrivileged(Native Method)
> > >    [junit]     at java.net.URLClassLoader.findClass(URLClassLoader.java:187)
> > >    [junit]     at java.lang.ClassLoader.loadClass(ClassLoader.java:289)
> > >    [junit]     at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:274)
> > >    [junit]     at java.lang.ClassLoader.loadClass(ClassLoader.java:235)
> > >    [junit]     at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:302)
> > >    [junit]     at java.lang.Class.forName0(Native Method)
> > >    [junit]     at java.lang.Class.forName(Class.java:141)
> > >    [junit]
> > >    [junit]
> > >    [junit] [ERROR] TEST TryItTest FAILED
> > >
> > > BUILD FAILED
> > > File...... C:\Documents and Settings\wvdw\.maven\cache\maven-test-plugin-1.6.2\plugin.jelly
> > > Element... fail
> > > Line...... 181
> > > Column.... 54
> > > There were test failures.
> > > Total time: 3 seconds
> > > Finished at: Tue May 03 11:44:52 CEST 2005
> > >
> > > Any ideas?
> > >
> > > Wim
> > > -----------------------------------------------------
> > > Mail.be, WebMail and Virtual Office
> > > http://www.mail.be
> > >
> > > ---------------------------------------------------------------------
> > > 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
> >
> 
> -----------------------------------------------------
> Mail.be, WebMail and Virtual Office
> http://www.mail.be
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
> For additional commands, e-mail: users-help@maven.apache.org
> 
> 


-- 
Jamie Bisotti
Software Engineer
Lexmark International, Inc.

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


Re: Maven Junit test ClassNotFoundException

Posted by Wim Vandewalle <wv...@mail.be>.
The POM is identical to the 10 minute test at the Maven site:

<project>
  <groupId>sample</groupId>
  <artifactId>sample-echo</artifactId>
  <version>1.0-SNAPSHOT</version>
  <dependencies>
    <dependency>
      <groupId>log4j</groupId>
      <artifactId>log4j</artifactId>
      <version>1.2.8</version>
    </dependency>
  </dependencies>
  <build>
    <sourceDirectory>src/main/java</sourceDirectory>
    <unitTestSourceDirectory>src/test/java</unitTestSourceDirectory>
    <resources>
      <resource>
        <directory>src/main/resources</directory>
      </resource>
    </resources>
    <unitTest>
      <includes>
        <include>**/*Test.java</include>
      </includes>
    </unitTest>
  </build>
</project>

If I understand this right, there is a problem with the destination location of the class files:

"main/java/" in: target/classes/main/java/code/TryIt.class
"test/java/" in: target/test-classes/test/java/TryitTest.class

Isn't it up to Maven to decide where to put the class files?

Wim

> ----------------------------------------
> From: Samuel Le Berrigaud <sa...@gmail.com>
> Sent: Tue May 03 12:12:21 CEST 2005
> To: Maven Users List <us...@maven.apache.org>, Wim Vandewalle <wv...@mail.be>
> Subject: Re: Maven Junit test ClassNotFoundException
> 
> 
> Hi,
> 
> there is something strange between your source files and your class files.
> 
> Is the pakcage of Tryit.java the default package or the "code" package ?
> 
> First I would say have the same directory structure inside your
> src/main and src/test, and the same package for the class being tested
> and the test class.
> 
> Second, if your Tryit.java uses the default package it should then be:
> 
> - target/classes/Tryit.class
> - target/test-classes/TryitTest.class
> 
> if it uses the "code" pakcage it should be:
> 
> - target/classes/code/Tryit.class
> - target/test-classes/code/TryitTest.class
> 
> I think the exception comes from those points... 
> I would need a extract of your pom (project.xml) to be more precise.
> 
> SaM
> 
> On 5/3/05, Wim Vandewalle <wv...@mail.be> wrote:
> > Hi
> > 
> > I started recently setting up a test with Maven.
> > I followed the steps described in "Getting started - Creating a project".
> > I added 2 simple classes:
> > 
> > - src/main/java/code/Tryit.java
> > - src/test/java/TryitTest.java  (unit test)
> > 
> > The java classes compile ok:
> > 
> > - target/classes/main/java/code/TryIt.class
> > - target/test-classes/test/java/TryitTest.class
> > 
> > However when running the unit tests it looks like the test class is not in JUnit's classpath:
> > 
> > C:\repositories\eclipse\maventest>maven test:test
> > __  __
> > |  \/  |__ _Apache__ ___
> > | |\/| / _` \ V / -_) ' \  ~ intelligent projects ~
> > |_|  |_\__,_|\_/\___|_||_|  v. 1.0.2
> > 
> > build:start:
> > 
> > java:prepare-filesystem:
> > 
> > java:compile:
> >    [echo] Compiling to C:\repositories\eclipse\maventest/target/classes
> >    [echo]
> > ==========================================================
> > 
> >  NOTE: Targetting JVM 1.4, classes
> >  will not run on earlier JVMs
> > 
> > ==========================================================
> > 
> >    [javac] Compiling 1 source file to C:\repositories\eclipse\maventest\target\classes
> > 
> > java:jar-resources:
> > 
> > test:prepare-filesystem:
> > 
> > test:test-resources:
> > 
> > test:compile:
> >    [javac] Compiling 1 source file to C:\repositories\eclipse\maventest\target\test-classes
> > 
> > test:test:
> >    [junit] Running
> >    [junit] Tests run: 1, Failures: 0, Errors: 1, Time elapsed: 0 sec
> >    [junit] Testsuite: TryItTest
> >    [junit] Tests run: 1, Failures: 0, Errors: 1, Time elapsed: 0 sec
> >    [junit]
> >    [junit] Null Test:  Caused an ERROR
> >    [junit] TryItTest
> >    [junit] java.lang.ClassNotFoundException: TryItTest
> >    [junit]     at java.net.URLClassLoader$1.run(URLClassLoader.java:199)
> >    [junit]     at java.security.AccessController.doPrivileged(Native Method)
> >    [junit]     at java.net.URLClassLoader.findClass(URLClassLoader.java:187)
> >    [junit]     at java.lang.ClassLoader.loadClass(ClassLoader.java:289)
> >    [junit]     at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:274)
> >    [junit]     at java.lang.ClassLoader.loadClass(ClassLoader.java:235)
> >    [junit]     at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:302)
> >    [junit]     at java.lang.Class.forName0(Native Method)
> >    [junit]     at java.lang.Class.forName(Class.java:141)
> >    [junit]
> >    [junit]
> >    [junit] [ERROR] TEST TryItTest FAILED
> > 
> > BUILD FAILED
> > File...... C:\Documents and Settings\wvdw\.maven\cache\maven-test-plugin-1.6.2\plugin.jelly
> > Element... fail
> > Line...... 181
> > Column.... 54
> > There were test failures.
> > Total time: 3 seconds
> > Finished at: Tue May 03 11:44:52 CEST 2005
> > 
> > Any ideas?
> > 
> > Wim
> > -----------------------------------------------------
> > Mail.be, WebMail and Virtual Office
> > http://www.mail.be
> > 
> > ---------------------------------------------------------------------
> > 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
> 

-----------------------------------------------------
Mail.be, WebMail and Virtual Office
http://www.mail.be


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


Re: Maven Junit test ClassNotFoundException

Posted by Samuel Le Berrigaud <sa...@gmail.com>.
Hi,

there is something strange between your source files and your class files.

Is the pakcage of Tryit.java the default package or the "code" package ?

First I would say have the same directory structure inside your
src/main and src/test, and the same package for the class being tested
and the test class.

Second, if your Tryit.java uses the default package it should then be:

- target/classes/Tryit.class
- target/test-classes/TryitTest.class

if it uses the "code" pakcage it should be:

- target/classes/code/Tryit.class
- target/test-classes/code/TryitTest.class

I think the exception comes from those points... 
I would need a extract of your pom (project.xml) to be more precise.

SaM

On 5/3/05, Wim Vandewalle <wv...@mail.be> wrote:
> Hi
> 
> I started recently setting up a test with Maven.
> I followed the steps described in "Getting started - Creating a project".
> I added 2 simple classes:
> 
> - src/main/java/code/Tryit.java
> - src/test/java/TryitTest.java  (unit test)
> 
> The java classes compile ok:
> 
> - target/classes/main/java/code/TryIt.class
> - target/test-classes/test/java/TryitTest.class
> 
> However when running the unit tests it looks like the test class is not in JUnit's classpath:
> 
> C:\repositories\eclipse\maventest>maven test:test
> __  __
> |  \/  |__ _Apache__ ___
> | |\/| / _` \ V / -_) ' \  ~ intelligent projects ~
> |_|  |_\__,_|\_/\___|_||_|  v. 1.0.2
> 
> build:start:
> 
> java:prepare-filesystem:
> 
> java:compile:
>    [echo] Compiling to C:\repositories\eclipse\maventest/target/classes
>    [echo]
> ==========================================================
> 
>  NOTE: Targetting JVM 1.4, classes
>  will not run on earlier JVMs
> 
> ==========================================================
> 
>    [javac] Compiling 1 source file to C:\repositories\eclipse\maventest\target\classes
> 
> java:jar-resources:
> 
> test:prepare-filesystem:
> 
> test:test-resources:
> 
> test:compile:
>    [javac] Compiling 1 source file to C:\repositories\eclipse\maventest\target\test-classes
> 
> test:test:
>    [junit] Running
>    [junit] Tests run: 1, Failures: 0, Errors: 1, Time elapsed: 0 sec
>    [junit] Testsuite: TryItTest
>    [junit] Tests run: 1, Failures: 0, Errors: 1, Time elapsed: 0 sec
>    [junit]
>    [junit] Null Test:  Caused an ERROR
>    [junit] TryItTest
>    [junit] java.lang.ClassNotFoundException: TryItTest
>    [junit]     at java.net.URLClassLoader$1.run(URLClassLoader.java:199)
>    [junit]     at java.security.AccessController.doPrivileged(Native Method)
>    [junit]     at java.net.URLClassLoader.findClass(URLClassLoader.java:187)
>    [junit]     at java.lang.ClassLoader.loadClass(ClassLoader.java:289)
>    [junit]     at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:274)
>    [junit]     at java.lang.ClassLoader.loadClass(ClassLoader.java:235)
>    [junit]     at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:302)
>    [junit]     at java.lang.Class.forName0(Native Method)
>    [junit]     at java.lang.Class.forName(Class.java:141)
>    [junit]
>    [junit]
>    [junit] [ERROR] TEST TryItTest FAILED
> 
> BUILD FAILED
> File...... C:\Documents and Settings\wvdw\.maven\cache\maven-test-plugin-1.6.2\plugin.jelly
> Element... fail
> Line...... 181
> Column.... 54
> There were test failures.
> Total time: 3 seconds
> Finished at: Tue May 03 11:44:52 CEST 2005
> 
> Any ideas?
> 
> Wim
> -----------------------------------------------------
> Mail.be, WebMail and Virtual Office
> http://www.mail.be
> 
> ---------------------------------------------------------------------
> 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