我在pom.xml中有以下条目,其中包含配置中定义的套件文件。
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.19.1</version>
<configuration>
<suiteXmlFiles>
<suiteXmlFile>testng.xml</suiteXmlFile>
</suiteXmlFiles>
</configuration>
</plugin>
使用maven在cmd中运行这个测试的正确方法是什么?我可以使用下面的命令运行测试,但是当testng.xml已经在pom中定义时,在命令中再次指示它是没有意义的。
mvn clean test -DsuiteXmlFile=testng.xml
5条答案
按热度按时间7rfyedvj1#
最简单的解决方案是,在surefire插件中添加以下行。
并运行您的xml文件,如下所示,
mzmfm0qo2#
首先,请在pom.xml中添加改进...需要添加执行部分:
第二,你可以在pom.xml中创建一个带有变量的section,然后从cmd中调用它。
原型pom.xml的结果
并使用这个,如何为cmd的例子:
mvn test -DdefaultSuiteFiles="./YOUR_DIRECTORY/YOUR_SUITE.xml,"
说明:在pom.xml中,你设置了xml的默认值和变量。而且,如果你在cmd中使用变量,你将重写值。
64jmpszr3#
如果你有一个固定的testng xml,那么你只需要做
mvn clean test
,在maven的测试阶段,surefire插件会默认执行,并且xml硬编码会被选中。6mw9ycah4#
例如,对于我的项目,我使用文件名AllTests.xml代替testng.xml,它位于文件夹TestSuites下
现在运行
mvn clean test
,它将从pom.xml中选择测试套件文件,并运行该套件中提到的所有测试类。注:
1.我们需要提及testng.xml文件完整路径的原因是,默认情况下,maven将直接在项目级别下搜索此文件
1.如果您使用IntelliJ,您可以通过右键单击文件-〉复制路径-〉内容根的路径,找到testng.xml文件的内容根的路径
e3bfsja25#
遵循与@S-Kerrigan提供的解决方案完全相同的解决方案。但它在以下场景中的行为不同。
在我的文件夹中,有3个testng xml文件,但我在运行时只传递了一个testng xml文件,但它正在执行所有三个xml文件。
在pom文件的属性中定义如下:
插件如下所示:
在CMD mvn清理测试中-默认套件文件= src/测试/资源/测试套件/前提条件. xml