2009-09-28 5 views
3

J'ai été configuré pour exécuter gunit (un outil de test d'unités grammaticales ANTLR) via le maven-gunit-plugin. gunit, cependant, a deux modes différents. Le premier mode fait que le gunit joue le rôle d'interprète, lit le fichier * .gunit (ou * .testsuite), l'interprète et affiche les résultats. Il peut être configuré en tant que tel:Comment générer des sources JUnit en utilisant maven-gunit-plugin

<plugin> 
    <groupId>org.antlr</groupId> 
    <artifactId>maven-gunit-plugin</artifactId> 
    <version>3.1.3</version> 
    <executions> 
     <execution> 
      <id>maven-gunit-plugin</id> 
      <phase>test</phase> 
      <goals> 
       <goal>gunit</goal> 
      </goals> 
     </execution> 
    </executions> 
    </plugin> 

Le second mode entraîne la génération de code source pouvant être exécuté par JUnit. Comment puis-je demander au maven-gunit-plugin de générer des sources JUnit au lieu d'agir en tant qu'interprète?

Quelques notes:

  • je peux changer la phase de test pour « générer des essais sources » pour que le plugin Maven pour exécuter au bon moment.
  • je ne pouvais pas trouver toute la documentation utile sur le maven-plugin-gunit
  • J'ai vu des gens utiliser exec-maven-plugin pour exécuter gunit avec une option de ligne de commande spécifique, mais je ne cherche pas à le faire.

EDIT/RESOLUTION:

Après avoir lu les différentes réponses, j'ai téléchargé le code source de ANTLR, qui comprend le maven-plugin-gunit. Le plugin fait pas la génération junit. Il s'avère que l'instantané codé de la gunit-maven-plugin et le plugin exec sont actuellement les seules options.

Répondre

3

J'ai trouvé un discussion par MNG-4039 qui est illustré avec un échantillon gunit-maven-plugin. Je vous laisse lire l'article en entier mais, selon l'auteur, vous devriez retrouver avec quelque chose comme ceci:

<dependencies> 
    <dependency> 
    <groupId>org.antlr</groupId> 
    <artifactId>antlr-runtime</artifactId> 
    <version>3.1.1</version> 
    </dependency> 
    <!-- Here is the 'extra' dep --> 
    <dependency> 
    <groupId>org.antlr</groupId> 
    <artifactId>antlr</artifactId> 
    <version>3.1.1</version> 
    <!-- we try to use scope to hide it from transitivity --> 
    <scope>test</scope> <!-- or perhaps 'provided' (see later discussion) or 'import' (maven >= 2.0.9) --> 
    </dependency> 
</dependencies> 
<build> 
    <plugins> 
    <plugin> 
     <groupId>org.codehaus.mojo</groupId> 
     <artifactId>gunit-maven-plugin</artifactId> 
     <version>1.0.0-SNAPSHOT</version> 
     <executions> 
     <execution> 
      <goals> 
      <goal>generate</goal> 
      </goals> 
     </execution> 
     </executions> 
    </plugin> 
    </plugins> 
</build> 

Je n'ai pas testé cette configuration moi-même et ne peux pas confirmer ainsi tout fonctionne sur de la boîte. Je ne sais même pas si le plugin a été publié dans une version non SNAPSHOT. La seule chose que je peux confirmer est qu'il semble en effet très difficile de trouver une "vraie" documentation sur le .

+0

gunit-maven-plugin de org.codehaus.mojo n'est pas la même chose que maven-gunit-plugin de org.antlr. Je verrai, cependant, s'il y a un référentiel/snapshot qui fonctionne comme indiqué ci-dessus. –

+0

@Pascal +1, @Kaleb les plugins sont en effet différents.Le codehaus mojo a été écrit spécifiquement comme solution de contournement pour générer les classes de test JUnit. Si vous êtes déterminé à éviter le plugin exec, alors ce Mojo semble actuellement être la meilleure option (en supposant que cela fonctionne). Bien qu'il soit averti que le suffixe SNAPSHOT signifie que le plugin est volatile et sujet à changement, vous pouvez prendre une copie locale et la renommer/la réversion pour éviter de prendre des modifications de rupture. –

+0

+1 avec les mots sages de Rich: l'utilisation d'une version SNAPSHOT peut être fatale à votre stabilité de construction et je préfère utiliser une version "fixe" pour des raisons de reproductibilité. –

1

Il est triste nouvelles here

j'ai découvert jusqu'à présent il n'y a pas GUnit fonctionnalité (que ce soit JUnit Test-génération ou invocation directe de GUnit) pour maven en ce moment. Je déjà envoyé par la poste avec Jim Idle concering l'état de GUnit dans le
antlr3-maven-plugin et appris que il y a un patch à l'ancienne version de la maven-plugin en attente dans la file d'attente.

Je pense que this est la seule option.

+0

Les deux publications référencées sont plus anciennes que la version originale de maven-gunit-plugin le 1er mai 2009 (voir http://www.antlr.org/pipermail/antlr-interest/2009-May/034276.html), donc Je doute encore que j'ai une bonne réponse. Enquêter plus ... –

Questions connexes