# Bekomme JUnit TEst nicht zum laufen :(



## KingCockroach (30. Jul 2008)

Hallo, 
heute ist Tag 3, wo ich mit Junit rummache und ich  bekomme dieses scheinbar einfache Beispiel nicht zum laufen
http://ideoplex.com/id/25/ant-and-junit


Hier mein build.xml und die Ausgabe: Ich meine es ist alles korrekt gesetzt, trotzdem kommt immer wieder dieser Fehler: Wer kennt sich damit aus ? (Die Klasse TestExample liegt im Projekt "TestProject" im src Ordner webtest)

*Das Target compile-test wird fehlerfrei ausgeführt!*


```
import junit.framework.*;
public class TestExample extends TestCase {
    public void testOne()
    {
        assertTrue( "TestExample", true );
    }
}
```



```
<project default="all">
  <property name="tst-dir" location="webtest" />
  <property name="TALK" value="true" />
  <property name="libs" location="web\WEB-INF\lib" />

  <path id="classpath.base">
  </path>
  <path id="classpath.test">
  	    <pathelement path="${libs}\junit-4.4.jar" />
  	  	<pathelement path="${libs}\selenium-server.jar" />
  		<pathelement path="${libs}\selenium-java-client-driver.jar" />
    <path refid="classpath.base" />
  </path>

  <target name="compile-test">
    <javac srcdir="${tst-dir}"
           verbose="${TALK}"
           >
      <classpath refid="classpath.test"/>
    </javac>
  </target>
  <target name="clean-compile-test">
    <delete verbose="${TALK}">
      <fileset dir="${tst-dir}" includes="**/*.class" />
    </delete>
  </target>

  <target name="test" depends="compile-test">
    <junit>
      <classpath refid="classpath.test" />
      <formatter type="brief" usefile="false" />
      <test name="TestExample" />
    </junit>
  </target>

  <target name="all" depends="test" />
  <target name="clean" depends="clean-compile-test" />
</project>
```


```
Buildfile: D:\eclipse_workspace\web\TestProject\build.xml
compile-test:
test:
    [junit] Testsuite: TestExample
    [junit] Tests run: 1, Failures: 0, Errors: 1, Time elapsed: 0 sec
    [junit] Null Test: 	Caused an ERROR
    [junit] TestExample
    [junit] java.lang.ClassNotFoundException: TestExample
    [junit] 	at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
    [junit] 	at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
    [junit] 	at java.lang.Class.forName0(Native Method)
    [junit] 	at java.lang.Class.forName(Class.java:242)
    [junit] 	at org.eclipse.ant.internal.ui.antsupport.EclipseDefaultExecutor.executeTargets(EclipseDefaultExecutor.java:32)
    [junit] 	at org.eclipse.ant.internal.ui.antsupport.InternalAntRunner.run(InternalAntRunner.java:423)
    [junit] 	at org.eclipse.ant.internal.ui.antsupport.InternalAntRunner.main(InternalAntRunner.java:137)
    [junit] Test TestExample FAILED
BUILD SUCCESSFUL
Total time: 688 milliseconds
```


----------



## byte (30. Jul 2008)

Gibts einen Grund, warum Du das so umständlich mit Ant machen willst? Benutzt Du etwa keine JUnit-fähige IDE wie Eclipse? Das Tutorial ist übrigens von 2003. :roll:


----------



## KingCockroach (30. Jul 2008)

stimmt eigentlich...
reicht ja wenn ich das über eclipse mache....

anders gefragt: wann bzw. wo könnte ich denn den junit task in ant überhuapt noch brauchen  :roll:


----------



## byte (30. Jul 2008)

Man könnte so ein Script verwenden, um bei automatischen Builds zunächst alle Unittests laufen zu lassen (Stichwort: Continous Integration).

Wenn man sowas richtig machen will, sollte man aber gleich sowas wie Teamcity verwenden.


----------



## FArt (30. Jul 2008)

KingCockroach hat gesagt.:
			
		

> stimmt eigentlich...
> reicht ja wenn ich das über eclipse mache....
> 
> anders gefragt: wann bzw. wo könnte ich denn den junit task in ant überhuapt noch brauchen  :roll:



Immer wenn ich unabhängig von einer IDE sein will oder muss... ich z.B. will das, denn meine Tests laufen auch automatisiert durch und ohne dass ein Eclipse Projekt eingerichtet werden muss... ;-)


----------



## KingCockroach (30. Jul 2008)

es geht jetzt durch die Verwendung der richtigen Syntax


```
<test name="vollständigePackageangabe.TestExample" />
```

trotzdem, irgendwie ziemlich kryptisch das Ganze. Alle ANT Quellen sind ziemlich alt, was stattdessen verwenden. Brauch ich gleich dieses Teamcity ?

Im Prinzip sollen jedesmal wenn eine neue Version der WebAnwendung zusammengestellt wird, diese Tests durchlaufen werden und erst wenn diese erfolgreich waren soll eine war Datei erstellt werden.


----------



## madock (12. Aug 2011)

ich hab genau das gleiche Problem, muss es aber in Ant machen. Die Testklasse findet der Compiler nicht und i komm net drauf wie ich genau den Pfad angeben muss. Bitte um Hilfe!

lg jacki


----------



## Gonzo17 (12. Aug 2011)

Ich vermute das liegt am Classpath. Einmal sollte man 
	
	
	
	





```
fork="yes"
```
 machen, damit eine seperate VM aufgerufen wird und außerdem muss der Classpath natürlich vollständig sein. Der Classpath im ersten Beispiel zeigt nur auf JUnit und selenium. Aber eben nicht auf die eigenen Klassen. Einfach mal hier nachlesen: JUnit Task


----------



## madock (12. Aug 2011)

danke für die schnelle antwort. die pfade müssten alle richtig eingestellt sein. 

ich versteh nicht was das bedeutet: <test name="my.test.TestCase"/> soll das my/test/TestCase sein?

die Fehlermeldung könnte vlt. hilfreich sein: CalculatorTest ist die JUNIT testklasse

CalculatorTest
    [junit] java.lang.ClassNotFoundException: CalculatorTest
    [junit] 	at java.lang.ClassLoader.loadClass(ClassLoader.java:266)
    [junit] 	at java.lang.Class.forName0(Native Method)
    [junit] 	at java.lang.Class.forName(Class.java:264)
    [junit] 	at org.eclipse.ant.internal.ui.antsupport.EclipseDefaultExecutor.executeTargets(EclipseDefaultExecutor.java:32)
    [junit] 	at org.eclipse.ant.internal.ui.antsupport.InternalAntRunner.run(InternalAntRunner.java:423)
    [junit] 	at org.eclipse.ant.internal.ui.antsupport.InternalAntRunner.main(InternalAntRunner.java:137)


----------



## maki (12. Aug 2011)

*geschlossen*

Wieso spielst du nicht in deinem eigenen Thread weiter anstatt einen uralten auszugraben um doppelt zu posten: http://www.java-forum.org/java-basics-anfaenger-themen/122870-junit-tests-ant-script-ausfuehren.html


----------

