Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/321.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为什么我的测试在作为maven独立测试执行时不运行?_Java_Maven_Testng - Fatal编程技术网

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%确定确切的版本是哪个。。。