2017-04-11 75 views
0

嗨我对詹金斯很陌生,我使用选择参数插件来允许用户选择他们想要运行的套件。我遇到的问题是当我尝试更改参数部分中选择的选项以追加目录和.xml前缀时,作业失败。如果我将全名放在参数中,并将其作为构建数据直接输入,则工作正常。下面是我的詹金斯设置,POM和错误。任何帮助,将不胜感激Jenkins Maven项目Biuld外壳不可用

选择参数数据

Name choice 
Choices CopyFunctionality 
     CopyToFunctionality 

窗口一批shell命令

@echo off 

set SUITE=%choice%.xml 

echo %SUITE% 

构建值

clean test -PParameterisedBuild -DsuiteXmlFile=${SUITE} 

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> 

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 

回答

0
  1. 排除从POM suiteXmlFiles PARAM,没有必要有这个PARAM因为你的系统PARAMS将覆盖它。
  2. 你不需要使用批处理脚本来设置jenkins params,jenkins会为你解析params。
  3. 通行证套房PARAMS到Maven保命插件,如:

    干净的测试-PParameterisedBuild -Dsurefire.suiteXmlFile = $ {选择(或任何你选择参数的时名称为)}

附:另外,我建议根据以上信息重新评估配置文件的使用情况,我非常确定,在99%的情况下,您可以简单地避免使用配置文件。