web-dev-qa-db-fra.com

Comment puis-je obtenir le plugin maven-release pour ignorer mes tests?

Comment puis-je faire fonctionner le plugin maven-release-plugin sans déclencher les tests?

J'ai essayé

-Dmaven.test.skip=true 

et

-DskipTests 

et

-DpreparationGoals=clean

... mais aucun ne fonctionne.

Oui, je sais que je ne devrais pas relâcher si les tests ne réussissent pas, mais je ne contrôle pas que mes collègues écrivent des tests fiables.

174
Steven

-Darguments="-DskipTests" est ce que vous voulez, ou configurer explicitement les exécutions forkées dans le pom.

397
bmargulies

-Darguments="..." passe les arguments au processus maven forké, mais il est important de se rendre compte que deux commutateurs différents sont utilisés ici. Le -DskipTests oblige maven à ne pas exécuter de test, mais les tests sont toujours compilés (ceci est important si vous avez des dépendances sur un type de test-jar). Le -Dmaven.test.skip=true oblige maven à ne même pas compiler les tests, ce qui signifie que les jars de test ne seront pas générés.

Donc, vous devez utiliser -Darguments, mais pour ignorer les tests en cours, utilisez uniquement skipTests, pour les empêcher de compiler, utilisez maven.test.skip.

40
Engineer Dollery

Si vous voulez juste ignorer les tests d'intégration, cela le fera:

-Darguments="-DskipITs"
21
David Gilks

Pour ignorer le test unitaire entier, il utilise un argument

-Dmaven.test.skip = true

donc si vous voulez ignorer le test unitaire cela résoudra

mvn install -Dmaven.test.skip=true
mvn package -Dmaven.test.skip=true

ou bien vous pouvez définir skipTests dans maven-surefire-plugin in

pom.xml

<plugin>
    <groupId>org.Apache.maven.plugins</groupId>
      <artifactId>maven-surefire-plugin</artifactId>
      <version>2.12.4</version>
      <configuration>
         <skipTests>true</skipTests>
      </configuration>
</plugin>
3
Mfuon Leonard

vous avez trop de choix à éviter et à ignorer les tests avec le plugin release

  • La première consiste à passer en argument cli à l'objectif ou aux phases de publication en fournissant un -Darguments:

exemple: mvn -X -Darguments="-Dmaven.javadoc.skip=true -Dmaven.test.skipTests=true -Dmaven.test.skip=true" -P release-mode release:prepare

-La seconde consiste à exécuter ces arguments sur votre pom.xml dans la construction comme ceci:

<plugin>    
                <groupId>org.Apache.maven.plugins</groupId>
                <artifactId>maven-release-plugin</artifactId>
                <dependencies>
                    <dependency>
                        <groupId>org.Apache.maven.scm</groupId>
                        <artifactId>maven-scm-provider-gitexe</artifactId>
                        <version>1.9.4</version>
                    </dependency>
                </dependencies>
                <configuration>
                    <skip>true</skip>
                    <skipTests>true</skipTests>
                    <preparationGoals>clean validate</preparationGoals>
                    <arguments>-Dmaven.javadoc.skip=true -Dmaven.test.skipTests=true -Dmaven.test.skip=true</arguments>
                    <useReleaseProfile>false</useReleaseProfile>
                    <releaseProfiles>release-mode</releaseProfiles>
                    <tagNameFormat>TEST-@{project.version}</tagNameFormat>
                </configuration>
            </plugin>

Notez que la deuxième méthode remplace la première.

Je vous ai recommandé de préparer la version d’abord sur une seule action, puis de modifier le fichier release.properties du répertoire de travail et de regarder le fichier exec.additionalArguments propriétés si vos arguments sont là. Cela ressemblera à: exec.additionalArguments=-Dmaven.javadoc.skip\=true -Dmaven.test.skipTests\=true -Dmaven.test.skip\=true -P release-mode.

Après que vous puissiez effectuer la libération.

2
idriss Eliguene

Aucun plug-in maven ne déclenche littéralement la compilation ou l'exécution de tests. Ce sont les phases du cycle de vie Maven qui déclenchent les exécutions d'un ou de plusieurs plug-ins, lorsque ceux-ci ont des objectifs liés à une phase spécifique.

Donc, l’exécution d’un seul objectif de plug-in suffirait sans exécuter de tests:

mvn release:perform

ou combiner avec la construction et l'emballage du projet:

mvn clean package release:perform
0