我用以下命令创建了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运行我的所有测试
我该怎么做才能仅使用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>
答案 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>
详细和并行减速不是强制性的。