我在Jenkins和Maven中运行我的测试,并在几个TestNG.xml文件中使用不同的测试套件。 现在我以这种方式直接在pom中管理它们:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>${surefire.version}</version>
<configuration>
<suiteXmlFiles>
<suiteXmlFile>Testing_Fuzzy_Logic.xml</suiteXmlFile>
<suiteXmlFile>Testing_ACL.xml</suiteXmlFile>
</suiteXmlFiles>
</configuration>
</plugin>
但我希望能够在启动Jenkins构建时选择特定的测试套件。如果我没有选择特定的套件,我希望所有套件都包含在构建中作为默认值。所以我的问题是:
在Jenkins参数中编写所有TestNG.xml文件并将它们发送到pom文件以便Maven在运行测试时使用它们的正确方法是什么?
这样的事情:
Jenkins变量:
以某种方式将其设置为pom文件:
答案 0 :(得分:0)
上述例子解决了这个问题。起初文件名出错,让我感到困惑。我修好了,现在我的例子工作正常。
所以其中一个解决方案是:一个字符串TEST_NG_XML参数,它被添加到参数化的Jenkins构建中。默认情况下,所有测试套件都设置在那里并用逗号分隔。如果需要,可以删除其中任何一个(参见上面的示例)。
但如果还有其他解决方案,我会很高兴看到它们。
答案 1 :(得分:0)
在jenkins上,您可以通过以下格式传递顶级maven目标
test -DargLine="-DTest_NG_XML=src/test/resources/testng.xml"
通过这种方式,您在运行maven测试阶段时传递Test_NG_XML变量的值。通常在jenkins上执行以下maven目标。
-DargLine="-Dparameter=value"
答案 2 :(得分:0)
test -DsuiteXmlFile = src / test / resources / testng1.xml,src / test / resources / testng2.xml
如何确保以这种方式传递测试套件的执行优先级?
我遇到了同样的问题,我已将它分成单独的Jenkins版本,每个版本都通过单独的套件,以确保某些套件在另一套件之前运行。 我想简化它,可能通过上面指出的方式...但你尝试执行的顺序?感谢