Maven2 jako použít testové třídy z jiného projektu

Obrázek uživatele benzin@jabber.cz
Vložil benzin@jabber.cz, Čt, 2007-04-19 22:27 :: | |

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.a­pache.maven.plu­gins</groupId>
         <artifactId>maven-jar-plugin</artifac­tId>
         <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.ap­netis</groupId>
       <artifactId>sup­port</artifac­tId>
       <version>0.1.0<<ver­sion>
       <type>test-jar</type>
       <scope>test</sco­pe>
     </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 Smiling