1、测试方法和测试类
我们知道在pytest中,只要符合命名规范,就可以被自动识别为测试类和测试方法。在testng中,使用了@Test注解的方法就是测试方法,包含测试方法的类就是测试类。比如:
package org.example;
//import static org.junit.Assert.assertTrue;
import org.testng.Assert;
import org.testng.annotations.*;
public class AppTest
{
@BeforeClass
public void setUp() {
System.out.println("开始了");
}
@Test
public void test01(){
int a = 1;
Assert.assertEquals(a, 1);
System.out.println("我是test01");
}
@Test
public void test02() {
Assert.assertTrue(true);
System.out.println("我是test02");
}
@AfterClass
public void tearDown() {
System.out.println("结束了");
}
}
@Test也能放在测试类上面,这样测试类下的所有方法都是测试方法,比如:
@Test
public class Test1 {
public void test1() {
}
public void test2() {
}
}
而且可以在测试类和测试方法上同时使用@Test,比如给某个Test加入分组:
这样表示test1和test2都是测试用例,且test2分组为g1
@Test
public class Test1 {
public void test1() {
}
@Test(groups = "g1")
public void test2() {
}
}
2、测试分组
测试组其实就是给测试方法打标记,比如冒烟测试用例和功能测试用例,类似于pytest中的pytest.mark,可以给测试用例设置多个分组,groups是一个字符串数组

编辑xml文件:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="All Test Suite">
<test verbose="2" preserve-order="true" name="D:/testngDemo">
<groups>
<run>
<include name="B"/>
</run>
</groups>
<classes>
<class name="org.example.AppTest"/>
</classes>
</test>
</suite>
这样就只会运行标记为B的测试用例
对于分组的位置,如果测试类和测试方法都标记了分组,那么测试类的分组会作用到所有方法中,比如:
@Test(groups = {"checkin-test"})
public class All {
@Test(groups = {"func-test")
public void method1() { ...}
public void method2() { ...}
}
这样,method2()属于checkin-test分组,method1属于func-test和checkin-test两个分组。
文章介绍了TestNG中使用@Test注解定义测试方法和测试类的方式,并展示了如何通过@BeforeClass和@AfterClass进行设置前置和后置操作。此外,还讨论了测试分组的概念,允许对测试用例打标记,类似pytest的标记功能。通过XML配置文件可以筛选运行特定分组的测试用例。文章强调了分组的继承性以及如何覆盖类级别的分组设定。
471

被折叠的 条评论
为什么被折叠?



