Maven: Comment faire pour exécuter des tests après la phase « installation », lors d'une « sortie: préparer »?

électrotype:

J'ai quelques tests complexes que l' utilisation de projets autonomes Maven pour valider un code. Ces projets Maven sont emballés par les programatically essais et les résultants .jarfichiers sont ensuite utilisés. Ces projets font appel à des artefacts de mon principal projet multi-modules à la version actuelle , dans leur pom.xml. En d' autres termes, les tests des projets Maven doivent être en mesure de trouver des objets fournis par mon projet principal.

Dans un IDE, tout fonctionne bien puisque les objets actuels de mon projet principal sont résolus dynamiquement (pas référentiel local requis) lorsque je lance les tests. Aussi, je peux installer ces versions snapshot avant l' exécution des tests. Mais quand je veux sortir une nouvelle version de mon projet, je aurais besoin release:preparede:

  • Mettre à jour les versions (supprimer tous les « -snapshot »).
  • Exécute tous les tests qui ne se terminent pas *.PostInstallTest.java.
  • Emballez les artefacts et les installer localement.
  • Exécute alors les tests de cette fin avec *.PostInstallTest.java, étant donné que ces tests ont besoin d' accéder aux objets précédemment installés! Si les tests échouent, aucun commits ne par poussé par release:prepare.

Je sais que ce n'est pas parfait, car une version « mauvais » des artefacts pourrait être installé localement, lorsque les tests « PostInstallTest » échouent. Mais je prefere que de ne pas avoir ces tests fonctionnent à tous!

À l' heure actuelle, mon idée de travail est seulement de définir une propriété du système lorsque le releaseprofil est utilisé, et ont les *.PostInstallTest.javafichiers eux - mêmes désactiver si cette propriété existe. De cette façon, ces tests fonctionne encore quand RAN dans mon IDE (sans releaseprofil), mais ne serait pas exécuté du tout lors d' une release:preparecommande. Mais, encore une fois, je les aime à exécuter.

Je regardais la preparationGoals configuration du Maven Plugin mais je presse ne sais pas comment il pourrait me aider. J'ai aussi regardé le plugin Maven Failsafe semble , mais il ne semble pas soutenir la phase « installer ».

Alors, ma question : Y at - il un moyen de faire quelques tests après la phase « installation », quand release:prepareest utilisé (ou à la phase « installation », mais après le plug - in par défaut)?

MISE À JOUR: Voici un schéma rapide, si elle peut aider à comprendre ce qui se passe:

entrez la description d'image ici

MISE À JOUR 2 : Je n'ai pas testé correctement Failsafe, après tout. Il fonctionne à la phase « installer »! Regardez la réponse de df778899.

df778899:

Je ne pense pas que ce soit une réponse encore, mais développiez @ point de Lesiak, le plugin Failsafe semble bien par lui-même dans la phase d'installation. Par exemple:

<plugin>
    <artifactId>maven-failsafe-plugin</artifactId>
    <executions>
        <execution>
            <phase>install</phase>
            <goals>
                <goal>integration-test</goal>
                <goal>verify</goal>
            </goals>
        </execution>
    </executions>
</plugin>

Résultats dans cette sortie:

...
[INFO] --- maven-install-plugin:2.4:install (default-install) @ it-test ---
[INFO] Installing ...\target\it-test-0.0.1-SNAPSHOT.jar to ...\.m2\repository\group\it-test\0.0.1-SNAPSHOT\it-test-0.0.1-SNAPSHOT.jar
[INFO] Installing ...\pom.xml to ...\.m2\repository\group\it-test\0.0.1-SNAPSHOT\it-test-0.0.1-SNAPSHOT.pom
[INFO]
[INFO] --- maven-failsafe-plugin:3.0.0-M3:integration-test (default) @ it-test ---
[INFO]
[INFO] -------------------------------------------------------
[INFO]  T E S T S
[INFO] -------------------------------------------------------
[INFO] Running TheIT
[INFO] Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.093 s - in TheIT
[INFO]
[INFO] Results:
[INFO]
[INFO] Tests run: 1, Failures: 0, Errors: 0, Skipped: 0
[INFO]
[INFO]
[INFO] --- maven-failsafe-plugin:3.0.0-M3:verify (default) @ it-test ---
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS

Notez comment les maven-failsafe-plugin:3.0.0-M3:integration-testet maven-failsafe-plugin:3.0.0-M3:verifyobjectifs sont exécutés à la fin - dans la installphase.

Je suppose que tu aimes

Origine http://43.154.161.224:23101/article/api/json?id=205207&siteId=1
conseillé
Classement