【发布时间】:2015-11-30 16:33:04
【问题描述】:
我正在通过 java main 方法运行这些 TestNG 测试(感谢另一篇文章 - how to call testng.xml from java main method?)
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 主程序运行时,有没有办法在 TestNG 中确定测试的优先级?
------- 编辑 ----------
谢谢蒂姆-斯利弗。我看了一下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">
现在它工作正常。 我认为这是错误的?对吗?
【问题讨论】:
-
可以分享一下你的主要方法代码吗?
-
我添加了main方法
-
你能把你
xyztest.xml的内容贴出来吗? -
我已经添加了xml
-
是的,错误是并行属性!
标签: java selenium selenium-webdriver testng