[英]How to prioritize TestNG test case when called from java main method
我正在通过Java main
方法运行这些TestNG
测试(由于另一篇文章- 如何从java main方法调用testng.xml? )
public class MainTest { //main
public static void main(String[] args) {
TestListenerAdapter tla = new TestListenerAdapter();
TestNG testng = new TestNG();
List<String> suites = Lists.newArrayList();
suites.add("c:/AbcTests/xyztest.xml");
testng.setTestSuites(suites);
testng.run();
}
}
public class Test001 { //test
@Test(priority=1)
public void a1() {
System.out.println("In a1 run");
}
@Test(priority=2)
public void a2() {
System.out.println("In a2 run");
}
@Test(priority=3)
public void b1() {
System.out.println("In b1 run");
}
}
但是当我运行它时,测试是随机选择的。
输出:
In a2 run
In a1 run
In b1 run
从TestNG运行时,这很好。
从Java main运行时,有没有一种方法可以优先确定TestNG中的测试?
-------编辑----------
谢谢tim-slifer。 我看了一下xml。 它是 :-
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="Just Test" verbose="3" parallel="methods">
<test name="Smoke">
<classes>
<class name="test2.Test001" />
</classes>
</test>
</suite>
我删除了parallel =“ methods”。 并将其更改为
<suite name="Just Test" verbose="3">
现在它可以正常工作。 我认为这是错误的? 这是正确的吗?
跟进您的编辑,以确认您(和niharika_neo)的发现。 parallel属性是导致问题的原因。
我在想,要么您启用了并行执行功能,要么您以希望它们执行的顺序不同的方式包含了测试方法。 但是,通过包含该类,就像您所做的那样,TestNG将按顺序执行这些方法...因此,并行是导致意外结果的原因。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.