ANT - Kompilieren von JUnit-Tests

Status
Nicht offen für weitere Antworten.

Humpatz

Mitglied
Hallo liebe Community,

ich habe ein kleines Problem bei der Erstellung meines Ant-Skriptes und hoffe ihr könnt mir weiterhelfen.

Folgende Ordner-Struktur existiert:
-ProjectRoot
- src
- test

in den Verzeichnissen src und test gibt es jeweils noch mehrere Unterverzeichnisse, in denen dann die .java-Files liegen.

das Kompilieren der src-Dateien klappt ohne Probleme mit:
<target name="compile.java" depends="compile.prepare">
<javac srcdir="${homeSrc}" destdir="${home}/${build}" source="${java.source}" target="${java.target}"
debug="${java.debug}" deprecation="${java.deprecation}"
includes="package1/**, package2/**">
<classpath refid="classpath.javac"/>
</javac>
</target>

die kompilierten Dateien werden dabei in das Verzeichnis ProjectRoot\build\ gelegt


Nun hatte ich vor, die junit-Dateien analog dazu kompilieren zu lassen, jedoch bekomme ich für die .java-Datei FileLoaderTest.java folgenden javac-Fehler:
Code:
[javac] D:\Project\test\unit\package1\FileLoaderTest.java:28: cannot find symbol
[javac] symbol  : class FileLoader
[javac] location: class FileLoader.FileLoaderTest
[javac] FileLoader fileLoader = null;

FileLoaderTest.java hat dabei folgenden Inhalt:
Code:
public class FileLoaderTest extends TestCase
{
	FileLoader fileLoader = null;
        ........
}

Meine Vermutung ist nun, dass ich zum Kompilieren der Unit-Test auch irgendwie die Verbindung zu den eigentlichen Source-Dateien herstellen muss. Ich habe schon versucht aus den kompilierten src-Dateien eine Jar zu bauen und diese dann dem Klassenpfad, der zum Kompilieren der Tests verwendet wird, mitzugeben. Hat aber auch nicht funktioniert.

Könnt ihr mir vielleicht behilflich sein. Solltet ihr weitere Infos zum Skript o.ä. brauchen, immer raus damit!

Vielen Dank!
 
M

maki

Gast
Zuerst müssen die "normalen" Klassen kompiliert werden, danach die UnitTests.
 

Humpatz

Mitglied
das wird schon erledigt, trotzdem funktioniert es aus für mich unerklärlichen Gründen nicht, die JUnit-Dateien zu kompilieren

woran kann es liegen, dass beim Kompilieren der Testdateien nicht auf die kompilierten src-klassen zurückgegriffen werden kann bzw. wo und wie muss ich das beim kompilieren der junit-tests angeben?
 

Ebenius

Top Contributor
Haste beim Kompilieren der JUnit-Tests auch "${home}/${build}" im CLASSPATH? Die Sourcen brauchst Du dabei nicht. Ebenius
 

FArt

Top Contributor
Am besten man führt immer (mindestens) zwei ClassPathRefs .. eines mit den produktiven Klassen, eines mit den produktiven Klassen und den Testklassen.

Je nachdem an welcher Stelle du dich gerade befindest, verwendest du den einen oder den anderen.
 

Humpatz

Mitglied
nach weiterem rumprobieren folgende verwunderliche erkentnisse.
hier ist erstmal mein classpath. ich verwende zum kompilieren der sourcen sowie zum kompilieren der junit-files den gleichen classpath.

Code:
<path id="classpath.javac">
      <fileset dir="${jre}">
        <include name="**/*.jar"/>
        <include name="**/*.zip"/>
      </fileset>
      <fileset dir="${home}/src/lib">
        <include name="**/*.jar"/>
        <include name="**/*.zip"/>
      </fileset>
	  <pathelement location="${home}/${build}"/>
</path>


diesen classpath habe ich versucht zu erweitern, indem ich ein zusätzliches fileset angegeben habe, indem sich bspw. die junit.jar befindet:
Code:
<fileset dir="${home}/test/unit/lib">
        <include name="**/*.jar"/>
        <include name="**/*.zip"/>
</fileset>


zusätzlich habe ich den classpath noch beim aufruf der junit-kompilierung um die project.jar aus den kompilierten sourcen ergänzt:
Code:
<javac
...
classpath="${classpath.javac};${homeJUnit}/lib/isbz.jar 
includes="isbz/**, FileLoader/**">
</javac>

das hatte zur Folge, dass der Fehler mit den fehlenden Klassensymbolen verschwunden war, jedoch wird jetzt folgendes bemängelt:
Code:
[javac] D:\Project\test\unit\package1\FileLoaderTest.java:14: package junit.framework does not exist
[javac] import junit.framework.TestCase;

der kompiler kann also offensichtlich die junit.jar nich finden, obwohl ich auf sie im klassenpfad referenziere. Komisch!
 
P

palstic-karma

Gast
Hallo,
ich habe hier das gleiche Problem. Wenn ich ant "-v" als Parameter mitgebe, ist klar zu sehen, dass der javac Task mit der Option -classpath "...;Pfad/junit-4.4.jar;..." aufgerufen wird. Allerdings kommt trotzdem der Compilefehler

cannot find symbol
[javac] symbol : constructor TestCase()

Hat jemand eine Idee ?
 
P

plastic-karma

Gast
Entschuldigt die vorschnelle Frage. Mein Problem hat sich erledigt. Auf dem Classpath war noch eine ältere Version von Junit. Nachdem ich diese entfernt habe, funktionierte alles wunderbar.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
Kirby.exe Projekt mit Maven kompilieren Tools - Maven, Gradle, Ant & mehr 13
M Java mit Modulen kompilieren klappt nicht Tools - Maven, Gradle, Ant & mehr 9
N Dependency in die .jar kompilieren. Tools - Maven, Gradle, Ant & mehr 1
D Möchte gerne eine seperate Klasse eines Tomcat Projekts Neu-Kompilieren Tools - Maven, Gradle, Ant & mehr 3
S Maven Kompilieren vom HtmlUnit Core Tools - Maven, Gradle, Ant & mehr 1
F Problem beim Kompilieren ohne IDE Tools - Maven, Gradle, Ant & mehr 5
ruutaiokwu eclipse web project - warum in den "build"-ordner kompilieren ??? Tools - Maven, Gradle, Ant & mehr 10
T beim Kompilieren änderungen vornehmen Tools - Maven, Gradle, Ant & mehr 5
G kann Applet nicht kompilieren! Tools - Maven, Gradle, Ant & mehr 2
0 Beispielapplet lässt sich nicht kompilieren . Tools - Maven, Gradle, Ant & mehr 5
O Java-Applet, Kompilieren, MS IE Tools - Maven, Gradle, Ant & mehr 2
K Spring JUnit Test: Code / Strukturierung / Beratung Tools - Maven, Gradle, Ant & mehr 8
P Maven Test werden nicht ausgeführt . Junit . Maven . Surefire . Eclipse Tools - Maven, Gradle, Ant & mehr 12
H Eclipse JUnit erzeugt Fehler im Maven-Test Tools - Maven, Gradle, Ant & mehr 1
D JUnit Test in Maven fail und in Eclipse erolgreich Tools - Maven, Gradle, Ant & mehr 4
GianaSisters Ant jUnit und Ant Problem Tools - Maven, Gradle, Ant & mehr 2
G Ant Hudson/Jenkins, Ant und JUnit unter einen Hut bringen Tools - Maven, Gradle, Ant & mehr 12
B Junit-Programm von Kommandozeile über Ant starten Tools - Maven, Gradle, Ant & mehr 20
Q Hudson JUnit Testcases durchführen Tools - Maven, Gradle, Ant & mehr 13
A Fehler bei Junit Tests über Ant Tools - Maven, Gradle, Ant & mehr 2
N Problem mit Ant Classpath und Junit: Relative Pfade Tools - Maven, Gradle, Ant & mehr 2
S JUnit-Tests mit Ant und assert Tools - Maven, Gradle, Ant & mehr 3
H Maven JUnit5 Tests werden ignoriert Tools - Maven, Gradle, Ant & mehr 5
LimDul Maven Einzelne Unit Tests in Maven Builds skippen Tools - Maven, Gradle, Ant & mehr 3
H Jenkins keine Tests gefunden - aber in Maven Tools - Maven, Gradle, Ant & mehr 30
H Maven - keine Durchführung von Tests Tools - Maven, Gradle, Ant & mehr 12
N Gradle für Tests 2 Frameworks Tools - Maven, Gradle, Ant & mehr 2
D [Maven]wie bekommt man separat ausführbare (executable jar) tests Tools - Maven, Gradle, Ant & mehr 4
C Buckminster + plugin tests Tools - Maven, Gradle, Ant & mehr 3
Kessi Maven und Eclipse Plug-in Unit Tests Tools - Maven, Gradle, Ant & mehr 9

Ähnliche Java Themen

Neue Themen


Oben