Montag, 7. Mai 2012

Maven: Test Source generieren und damit testen

Maven 3.0.3
exec-maven-plugin 1.2.1

Beim Beispielprojekt handelt es sich um einen Source Code Generator, der aus einem File, das Text in einer Domain Specific Language enthält, Java Code generiert.

Soweit so gut, nun soll beim Build aus einigen Test DSL Files der Source Code erzeugt werden und gegen einige JUnit Tests gefahren werden, um zu sehen ob der generierte Code den Erwartungen entspricht.

Das Ganze war entgegen meinen ersten Befürchtungen dann dank Maven einfach, dafür gibts das exec-maven-plugin.

   
    org.codehaus.mojo
    exec-maven-plugin
    1.2.1
    
     
      
       java
      
      generate-test-sources
     
    
    
     com.xxx.xxxx.gen.Action
     src/test/java/gen
    
   
  

Hier wird die Main Methode der angegebenen Klasse ausgeführt, in meinen Fall Test Source an der richtigen Stelle erzeugt (Das ist in der Klasse festgelegt, wird hier eigentlich nur dadurch bedacht das testSourceRoot angegeben wurde, damit Maven auch sicher mitkriegt das dieser Code vor dem Test auch brav kompiliert wird). Einfacher gehts eigentlich nimmer.

Damit vom generierten Code nicht irgendwann störende Restbestände herumliegen lösche ich diese bevor neuer generiert wird mithilfe des maven-clean-plugin:



    maven-clean-plugin
    
     
      
       src/test/java/gen
       false
      
     
    
   

Das wars eigentlich.

Was etwas irritieren kann ist, daß vor dem Build immer unkompilierbarer Code herumliegt, damit die JUnit Tests kompilieren muß erst der Test Source generiert werden.



Keine Kommentare:

Kommentar veröffentlichen