无法使用testNG,maven,NetBeans仅从一个类运行测试

时间:2018-07-05 15:09:44

标签: java maven testng

我用以下命令创建了Maven Java项目 pom.xml 然后,在“测试”包中创建了两个名为“ Test1.java”和“ Test2.java”的TestNG用例。还添加了“ NewTestNGSuite.xml” 'NewTestNGSuite.xml' Test1.java包含:

package tests;

import static org.testng.Assert.*;
import org.testng.annotations.Test;

public class Test1 {

    public Test1() {
    }
    @Test
     public void test_01() {
         System.out.println("\nFIRST!");
     }
     @Test
     public void test_02() {
         System.out.println("\nSECOND!");
     }
}

Test2.java包含:

    package tests;

    import static org.testng.Assert.*;
    import org.testng.annotations.Test;

    public class Test2 {

        public Test2() {
        }
        @Test
         public void test_03() {
             System.out.println("\nTHIRD!");
         }
         @Test
         public void test_04() {
             System.out.println("\nFOURTH!");
         }
    }

NewTestNGSuite.xml包含:

<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >

<suite name="tests" verbose="1">
   <test name="Test1" parallel="false">
        <classes>
                <class name="tests.Test1"/>
        </classes>
    </test>
</suite>

当我右键单击NewTestNGSuite.xml,然后单击“测试文件”时,它将从Test1.java和Test2.java运行我的所有测试

Results

我该怎么做才能仅使用NewTestNGSuite.xml从Test1.java运行测试?

pom.xml:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.mycompany</groupId>
    <artifactId>testNG</artifactId>
    <version>1.0-SNAPSHOT</version>
    <packaging>jar</packaging>
    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <maven.compiler.source>1.8</maven.compiler.source>
        <maven.compiler.target>1.8</maven.compiler.target>
    </properties>
      <dependencies>
            <dependency>
                   <groupId>org.testng</groupId>
                   <artifactId>testng</artifactId>
                   <version>6.8</version>
                   <type>jar</type>
            </dependency>
      </dependencies>
</project>

3 个答案:

答案 0 :(得分:0)

尝试将所需的xml文件添加到surefire插件下的pom.xml中:

    <build>
    <sourceDirectory>src/main/java</sourceDirectory>
    <testSourceDirectory>src/test/java</testSourceDirectory>
    <pluginManagement>
    <plugins>
    <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-surefire-plugin</artifactId>
    <version>2.22.0</version>
    <configuration>
      <suiteXmlFiles>
     <suiteXmlFile>NewTestNGSuite.xml</suiteXmlFile>
      </suiteXmlFiles>
    </configuration>
  </plugin>
        </plugins>
    </pluginManagement>
</build>

或仅添加surefire插件并使用maven命令选择xml文件:

mvn -Dsurefire.suiteXmlFiles=NewTestNGSuite.xml test

我想您也可以从NetBeans自定义每个maven命令。

答案 1 :(得分:0)

理想地,它必须按照定义的类仅执行Test1类。

可以将Testng依赖版本更新为6.14.3吗?我已经看到您使用的是旧版本。

请确保进行清洁和测试。

答案 2 :(得分:0)

尝试仅将其保留在XML中,然后重试。

<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="tests">
    <test name="Test1">
        <classes>
            <class name="tests.Test1"/>
        </classes>
    </test>
</suite>

详细和并行减速不是强制性的。