在Jenkins中,我使用选择参数插件来允许用户选择他们想要运行的套件。我遇到的问题是当我尝试更改参数部分中选择的选项以附加目录和.xml前缀时,作业失败。如果我将全名放在参数中并直接将其作为构建数据输入,它可以正常工作。下面是我的jenkins设置,pom和错误。
选择参数数据
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 :(得分:0)
将套件参数传递给maven surefire插件,如:
clean test -PParameterisedBuild -Dsurefire.suiteXmlFile = $ {choice(或者你选择的param的名称是什么)}
P.S。此外,我建议根据上述信息重新评估配置文件的使用情况,我非常确定在99%的情况下,您可以简单地避免使用配置文件。