我是TestNG的新手,我遇到了问题。 根据我目前的代码(见下文),我得到了这个结果:
runTest2()
开始(问题)runTest1()
开始(问题)tearDown()
开始(确定)目标:我希望按此顺序执行此操作(序列)
runTest1()
开始runTest2()
开始tearDown()
开始(确定)问题:我该如何实现?
@BeforeMethod
public void init() {
//startBrowser
}
@Test
public void runTest1() {
System.out.printline("runTest1() is started...");
}
@Test
public void runTest2() {
System.out.printline("runTest2() is started...");
}
@AfterMethod
public tearDown() {
//quit browser
}
答案 0 :(得分:1)
您可以使用dependsOnMethods。
@BeforeMethod
public void init() {
//startBrowser
}
@Test
public void runTest1() {
System.out.printline("runTest1() is started...");
}
@Test(dependsOnMethods = { "runTest1" }, alwaysRun=true)
public void runTest2() {
System.out.printline("runTest2() is started...");
}
@AfterMethod
public tearDown() {
//quit browser
}
alwaysRun=true
使其成为一种软依赖,即使runTest2
失败,也会执行runTest1
。
如果您想要一个硬依赖,请忽略alwaysRun=true
。
答案 1 :(得分:0)
BeforeTest
和AfterTest
代替BeforeMethod
和AfterMethod
。使用priority
注释Test
注释来设置必须执行这些参数的顺序。
@BeforeTest
public void init() {
System.out.println("starts Browser");
}
@Test(priority = 1)
public void runTest1() {
System.out.println("runTest1() is started...");
}
@Test(priority = 2)
public void runTest2() {
System.out.println("runTest2() is started...");
}
@AfterTest
public void tearDown() {
System.out.println("quits Browser");
}
我低于输出。
starts Browser
runTest1() is started...
runTest2() is started...
quits Browser
答案 2 :(得分:0)
你好@David& @Vinoth,
谢谢你的快速回答。 这两种解决方案对我来说都很好,但在这种情况下我更喜欢@Vinoth的解决方案,因为我不需要在runTest1和runTest2之间启动/关闭浏览器。 : - )
再次感谢你们两位。 ; - )))
干杯 罗兰