如何通过仅提供部分 class 名称来 运行 使用 testng 进行测试?
How to run test using testng by only providing partial class name?
假设我的java文件名是SeleniumID1Test.java,那么目前我的testngxml文件是这样的
<test name="Selenium Test Name">
<classes>
<class name="selenium.SeleniumID1Test"/>
</classes>
</test>
但我希望它通过部分 class 名称来完成,例如,如果我提供名称=ID1,它会运行 SeleniumID1Test。有什么办法吗?求推荐,谢谢
这是不可能的,但您可以include/exclude来自测试class的特定测试方法:
public class Test1{
@Test
public void test2() {
System.out.println("printing test_2");
}
@Test
public void test3() {
System.out.println("printing test_3");
}
}
XML:
<test name="WebPackage">
<classes>
<class name="test.Test1">
<methods>
<include name="test2"/>
<exclude name="test3"/>
</methods>
</class>
</classes>
</test>
我认为可以像这样使用 group 来解决您的问题:
import org.testng.Assert;
import org.testng.annotations.Test;
public class GroupTestExample {
String message = ".com";
MessageUtil messageUtil = new MessageUtil(message);
@Test(groups = { "functest", "checkintest" })
public void testPrintMessage() {
System.out.println("Inside testPrintMessage()");
message = ".com";
Assert.assertEquals(message, messageUtil.printMessage());
}
@Test(groups = { "checkintest" })
public void testSalutationMessage() {
System.out.println("Inside testSalutationMessage()");
message = "tutorialspoint" + ".com";
Assert.assertEquals(message, messageUtil.salutationMessage());
}
@Test(groups = { "functest" })
public void testingExitMessage() {
System.out.println("Inside testExitMessage()");
message = "www." + "tutorialspoint"+".com";
Assert.assertEquals(message, messageUtil.exitMessage());
}
}
你的xml文件应该是这样的:
<?xml version = "1.0" encoding = "UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name = "Suite1">
<test name = "test1">
<groups>
<run>
<include name = "functest" />
</run>
</groups>
<classes>
<class name = "GroupTestExample" />
</classes>
</test>
</suite>
假设我的java文件名是SeleniumID1Test.java,那么目前我的testngxml文件是这样的
<test name="Selenium Test Name">
<classes>
<class name="selenium.SeleniumID1Test"/>
</classes>
</test>
但我希望它通过部分 class 名称来完成,例如,如果我提供名称=ID1,它会运行 SeleniumID1Test。有什么办法吗?求推荐,谢谢
这是不可能的,但您可以include/exclude来自测试class的特定测试方法:
public class Test1{
@Test
public void test2() {
System.out.println("printing test_2");
}
@Test
public void test3() {
System.out.println("printing test_3");
}
}
XML:
<test name="WebPackage">
<classes>
<class name="test.Test1">
<methods>
<include name="test2"/>
<exclude name="test3"/>
</methods>
</class>
</classes>
</test>
我认为可以像这样使用 group 来解决您的问题:
import org.testng.Assert;
import org.testng.annotations.Test;
public class GroupTestExample {
String message = ".com";
MessageUtil messageUtil = new MessageUtil(message);
@Test(groups = { "functest", "checkintest" })
public void testPrintMessage() {
System.out.println("Inside testPrintMessage()");
message = ".com";
Assert.assertEquals(message, messageUtil.printMessage());
}
@Test(groups = { "checkintest" })
public void testSalutationMessage() {
System.out.println("Inside testSalutationMessage()");
message = "tutorialspoint" + ".com";
Assert.assertEquals(message, messageUtil.salutationMessage());
}
@Test(groups = { "functest" })
public void testingExitMessage() {
System.out.println("Inside testExitMessage()");
message = "www." + "tutorialspoint"+".com";
Assert.assertEquals(message, messageUtil.exitMessage());
}
}
你的xml文件应该是这样的:
<?xml version = "1.0" encoding = "UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name = "Suite1">
<test name = "test1">
<groups>
<run>
<include name = "functest" />
</run>
</groups>
<classes>
<class name = "GroupTestExample" />
</classes>
</test>
</suite>