2017-01-04 80 views
-2

The TocheckApproval() code block doesnot get executed 可有人请说明为什么发生这种情况,做什么步骤我需要执行两个@Test块其中@测试代码块不执行

+1

请在问题中添加代码而不是图片参考。也分享testng结果总结。 –

+0

@Naveen,这是我收到WebDriverException的错误:未知错误:元素在点(277,271)处不可点击。其他元素会收到点击:

+0

错误跟踪是否与此处提出的问题不同?该错误表明您正在单击父元素而不是子元素或类似元素。所以,当找到元素时更加注重定位器。 –

回答

1

我不知道是否法订单由TestNG框架保证。

如果你想方法顺序一样运行的测试经过一番测试,跑了(并标记为PASS),你可以使用dependsOnMethodsdependsOnGroups

如:

import org.junit.FixMethodOrder; 
import org.testng.annotations.AfterMethod; 
import org.testng.annotations.AfterTest; 
import org.testng.annotations.BeforeMethod; 
import org.testng.annotations.BeforeTest; 
import org.testng.annotations.DataProvider; 
import org.testng.annotations.Test; 
import org.testng.asserts.Assertion; 

public class TestExample { 

    @BeforeTest 
    public void beforetest(){ 
     System.out.println("before test "); 
    } 

    @Test 
    public void Tocheckapproval() { 
     System.out.println("in the method: Tocheckapproval"); 
    } 

    @Test(dependsOnMethods = {"Tocheckapproval"}) 
    public void TocheckRequestDecline() { 
     System.out.println("in the method: TocheckRequestDecline"); 
    } 


    @AfterTest 
    public void aftertest() { 
     System.out.println("after test"); 

    } 

} 

如果您想要定义您选择的方法顺序,并且测试不应该依赖于其他测试,那么可以使用method Interceptors而不是dependecyOn*(方法,组)。

method Interceptors提供了将作为参数之一运行的测试方法的列表,然后您可以根据您的需要进行重新安排。

参考文献:

  1. http://testng.org/doc/documentation-main.html#methodinterceptors
  2. http://beust.com/weblog/2008/03/29/test-method-priorities-in-testng/
1

您没有设置任何测试优先级,这就是为什么! 这很容易做到,只需将优先级放在@Test标签旁即可。

@Test (priority=1) 
public void ToTestApproval(){ 
//do some stuff 
} 

@Test (priority=2) 
public void ToCheckRequestDecline(){ 
//do some more stuff 
} 

如纳温,上面提到你可以通过使用dependsOnMethods和dependsOnGroups进一步缩小所需的行为。

PS。如果这不起作用,那么它可能归结于@Test标签本身。请仔细检查您使用的是TestNG注释而不是Junit!

祝你好运!

+0

我试着用dependson方法,它的工作非常好..将检查通过设置优先级以及..感谢您的建议 –