Java 为什么我的测试在作为maven独立测试执行时不运行?
如果我执行Java 为什么我的测试在作为maven独立测试执行时不运行?,java,maven,testng,Java,Maven,Testng,如果我执行mvn测试,所有测试(使用TestNG编写)都会正确执行并通过。在某些时候,我希望使用典型的mvn test-Dtest=myClass执行单个测试类 因此,基本上,当我尝试使用命令mvntest-Dtest=MyTests从特定类启动测试时,我希望只执行这个类。对于某些测试,它可以正常工作,但如果测试类包含要使用Spring执行的以下注释: @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(locations
mvn测试
,所有测试(使用TestNG编写)都会正确执行并通过。在某些时候,我希望使用典型的mvn test-Dtest=myClass
执行单个测试类
因此,基本上,当我尝试使用命令mvntest-Dtest=MyTests从特定类启动测试时,我希望只执行这个类。对于某些测试,它可以正常工作,但如果测试类包含要使用Spring执行的以下注释:
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = { "classpath:applicationContext.xml" })
public class MyTests extends AbstractTransactionalTestNGSpringContextTests {
@Test
public void test1(){
...
我得到输出:
Running com.my.package.MyTests
Tests run: 0, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.215 sec - in com.my.package.MyTests
该类定义了两个简单的测试,并使用mvn测试正确运行,但在mvn测试-Dtest=MyTests
时被忽略。并且只有那些带有先前注释的。另外,运行com.my.package.MyTests的行表明正在查找测试类,但未执行
我的TestNG版本是6.14.3。其配置为:
[...]
<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<version>6.14.3</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
[...]
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.19.1</version>
<configuration>
<useFile>false</useFile>
<trimStackTrace>false</trimStackTrace>
<suiteXmlFiles>
<suiteXmlFile>src/test/config/testng.xml</suiteXmlFile>
</suiteXmlFiles>
<useSystemClassLoader>false</useSystemClassLoader>
</configuration>
</plugin>
</plugins>
</build>
[...]
[…]
org.testng
testng
6.14.3
测试
朱尼特
朱尼特
4.12
测试
[...]
org.apache.maven.plugins
maven surefire插件
2.19.1
假的
假的
src/test/config/testng.xml
假的
[...]
为什么不执行这些测试类 欢迎来到SO。请向我们展示您的POM,以便我们查看测试配置是否正确。您使用的是哪个Junit版本?我已更新了问题,包括与测试阶段相关的POM版本和所有部分。您没有使用正确的命名约定,因为单元测试默认命名为*Test.java
,而不是*Tests.java
。如果您想使用maven surefire/failsafe的最新版本,则添加了此功能(我不能100%确定确切的版本…欢迎使用SO。请向我们展示您的POM,以便我们查看测试配置是否正确。您使用的是哪个Junit版本?我已经更新了问题,包括与测试阶段相关的版本和POM的所有部分。您没有使用正确的命名约定,因为单元测试是由defau完成的。)它名为*Test.java
而不是*Tests.java
。如果您想使用更新版本的maven surefire/failsafe,则已添加了此功能(我无法100%确定确切的版本是哪个。。。