Maven2 jako použít testové třídy z jiného projektu
Dnes jsem narazil na problém s testováním. Mám interface IDAO, které implementují všechny objekty sloužící jako DAO. Proto logicky vyvstal požadavek na vytvoření abstraktní třídy která implementuje DAO právě pro užití v testech jako mock objekty. Jen mně překvapilo, že jsem to nepotřeboval dřív.
Jenže problém nastal při dědění z takovéto třídy v jiném projektu. Maven2 totiž odděluje třídy používané pro testy od tříd (tada nevím jak jinak je nazvat). Takže jak teda použí testovací třídy v jiném objektu? Nakonec jsem našel: guide-attached-tests
V podstaě musíte udělat dvě věci. V projektu po kterém požadujete, aby své testové třídy nabízel musíte přidat do buildu přidat plugin maven-jar-plugin a nastavení pro goual asi takhle:
<build> <plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>test-jar</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
V projektu ve kterém chcete testové třídy používat pak importujte depenedeci asi takhle:
<dependencies>
<dependency>
<groupId>cz.apnetis</groupId>
<artifactId>support</artifactId>
<version>0.1.0<<version>
<type>test-jar</type>
<scope>test</scope>
</dependency>
</dependencies>
P.S.: Zkuste při tomhle blogovacím systému napsat nějaký strukturovaný kód. Se zlou se potážete ani <pre> ani <code> nefungujou tak jak by jste chtěli. Takže schválně se mrkněte do zdrojáku téhle stránky jak je to napsáno. Eště to není zcela vychytaný blog