# Maven / Zugriff auf Test Klassen von Dependencies



## Wladimir (13. Mrz 2010)

Hallo,
habe einen multi module maven build wobei manche tests test klassen von anderen projekten aufrufen.
Das heißt, dass ein projekt auf test klassen einer dependency zugreifen müßte. Jedoch sind diese standardmäßig nicht vefügbar.

Im build sind die test Verzeichnise so konfiguriert:
<testSourceDirectory>${basedir}/test</testSourceDirectory>
<testOutputDirectory>${basedir}/testtarget</testOutputDirectory>

Die sourcen so:
<sourceDirectory>${basedir}/source</sourceDirectory>
<outputDirectory>${basedir}/target/</outputDirectory>

Am besten würde es mir passen, wenn die test klassen nur im goal:test verfügbar wären.

Die Idee dahinter ist, dass die Tests der jeweiligen Projekte auch Test Instanzen erzeugen. Sodass andere Tests schnell vorgefertige Test Instanzen verwenden können.

Dachte mir jetzt mit surfire plugin additionalClasspathElements könnte das gehen. Aber das ist noch so sauber.

Vielleicht hatte jemand von euch schon eine ähnlich Problemstellung?


----------



## kama (13. Mrz 2010)

Hallo,



Wladimir hat gesagt.:


> habe einen multi module maven build wobei manche tests test klassen von anderen projekten aufrufen.
> Das heißt, dass ein projekt auf test klassen einer dependency zugreifen müßte.


Da kann man jetzt argumentieren, dass damit die Unabhängigkeit der Tests (Unit Tests) nicht mehr gegeben ist...sollte man nicht machen.....aber...ich weiß selbst dass das manchmal vorkommt ....

Einfachste Lösung die Test-Klassen die von anderen genutzt werden einfach in ein eigenes Module packen mit einem Classifier "test" und dann als Dependency (scope test) verwenden.



Wladimir hat gesagt.:


> Im build sind die test Verzeichnise so konfiguriert:
> <testSourceDirectory>${basedir}/test</testSourceDirectory>
> <testOutputDirectory>${basedir}/testtarget</testOutputDirectory>
> 
> ...


Warum ist das extra konfiguriert? 

Der "Maven Way" ist src/main/java src/main/resources und src/test/java src/test/resources...(Convention over Configuration)...
also warum davon abweichen ? 



Wladimir hat gesagt.:


> Am besten würde es mir passen, wenn die test klassen nur im goal:test verfügbar wären.


Die Test Klassen werden auch so in den Classpath eingetragen, dass Sie nur für das jeweilige Projekt verfügbar sind...


MfG
Karl Heinz Marbaise


----------



## Wladimir (13. Mrz 2010)

Danke, 
nach längerem Suchen hab ich auch ein Thema auf der maven seite gefunden:
Maven - Guide to using attached tests

Dort empfehlen Sie das test-jar goal als "Neuere" methode. Funktioniert!


----------

