我使用的是最新版本的TestNG,但仍然无法按照编写的顺序执行测试用例(避免使用优先级注释标记)。
import org.testng.annotations.Test;
public class NewTest {
@Test
public void b() {
System.out.println("inside b method");
}
@Test
public void a() {
System.out.println("inside a method");
}
}
我也使用了IMethodInterceptor,但仍然没有。
testng.xml中的还添加了监听器:
<listeners>
<listener class-name="testngdemo.PriorityInterceptor" />
</listeners>
但仍然得到以下输出
inside a method
inside b method
优先级界面:
import java.lang.annotation.Retention;
import java.lang.annotation.Target;
import static java.lang.annotation.ElementType.METHOD;
import static java.lang.annotation.ElementType.TYPE;
@Retention(java.lang.annotation.RetentionPolicy.RUNTIME)
@Target({METHOD, TYPE})
public @interface Priority { int value() default 0; }
答案 0 :(得分:1)
如果您从testng xml运行测试用例,那么按照您想要的顺序包含您的测试方法:
<classes>
....
....
<class name="Fully qualified class name without extension">
<methods>
<include name="method_1" />
<include name="method_1" />
.....
.....
<include name="method_N" />
</methods>
</class>
<class name="test.Test2" />
....
....
</classes>
答案 1 :(得分:0)
您尝试的内容并不是很清楚,但如果您在a
和b
之间存在依赖关系,请使用the dependsOnMethods
feature:
public class NewTest {
@Test
public void b() {
System.out.println("inside b method");
}
@Test(dependsOnMethods = { "b" })
public void a() {
System.out.println("inside a method");
}
}