2017-04-11 6 views
0

Salut, je suis newish à Jenkins, j'utilise le plugin paramètres de choix pour permettre à un utilisateur de choisir la suite qu'il aimerait lancer. Le problème que j'ai est quand j'essaye de changer l'option choisie dans la section de paramètre pour ajouter le répertoire et le préfixe .xml le travail échoue. Si je mets le nom complet dans le paramètre et que je le saisis directement en tant que données de construction, cela fonctionne correctement. Voici ma configuration jenkins, pom et erreur. Toute aide serait appréciéeJenkins Maven Project Biuld shell non disponible

données de paramètres de choix

Name choice 
Choices CopyFunctionality 
     CopyToFunctionality 

commande shell batch fenêtre

@echo off 

set SUITE=%choice%.xml 

echo %SUITE% 

Construire des valeurs

clean test -PParameterisedBuild -DsuiteXmlFile=${SUITE} 

profil POM

<profile> 
      <id>ParameterisedBuild</id> 
      <build> 
       <plugins> 
        <plugin> 
         <groupId>org.apache.maven.plugins</groupId> 
         <artifactId>maven-surefire-plugin</artifactId> 
         <version>2.19.1</version> 
         <configuration> 
          <suiteXmlFiles> 
           <suiteXmlFile>testNG XML Files\${SUITE}</suiteXmlFile> 
          </suiteXmlFiles> 
         </configuration> 
        </plugin> 
       </plugins> 
      </build> 
     </profile> 

erreur Maven

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.19.1:test (default-test) on project Expert_Models: Execution default-test of goal org.apache.maven.plugins:maven-surefire-plugin:2.19.1:test failed: There was an error in the forked process 
[ERROR] org.apache.maven.surefire.testset.TestSetFailedException: Suite file C:\Automation Framework\Jenkins\workspace\regression_tests_selectable\testNG XML Files\${SUITE} is not a valid file 
[ERROR] at org.apache.maven.surefire.testng.TestNGXmlTestSuite.locateTestSets(TestNGXmlTestSuite.java:98) 
[ERROR] at org.apache.maven.surefire.testng.TestNGProvider.invoke(TestNGProvider.java:120) 
[ERROR] at org.apache.maven.surefire.booter.ForkedBooter.invokeProviderInSameClassLoader(ForkedBooter.java:290) 
[ERROR] at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:242) 
[ERROR] at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:121) 
[ERROR] -> [Help 1] 
[ERROR] 
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch. 
[JENKINS] Archiving C:\Automation Framework\Jenkins\workspace\regression_tests_selectable\pom.xml to com.ExpertModels/Expert_Models/0.1-SNAPSHOT/Expert_Models-0.1-SNAPSHOT.pom 
[ERROR] Re-run Maven using the -X switch to enable full debug logging. 
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles: 
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/PluginExecutionException 
channel stopped 
Finished: FAILURE 

Répondre

0
  1. Ne comptez pas suiteXmlFiles param POM, il n'y a pas besoin d'avoir cette param depuis votre params système se remplacer.
  2. Vous n'avez pas besoin de définir les paramètres jenkins en utilisant le script batch, jenkins va analyser les paramètres pour vous.
  3. col Suite à params plugin Maven Surefire comme:

    essai propre -PParameterisedBuild -Dsurefire.suiteXmlFile = $ {choix (ou quel que soit le nom de votre choix est param)}

post-scriptum Aussi, je recommanderais de réévaluer l'utilisation des profils en fonction de l'information ci-dessus, je suis à peu près sûr que dans 99% des cas, vous pourriez simplement éviter d'avoir des profils.