Java 一个测试类中存在的@BeforeMethod能否适用于另一个测试类中的方法?
我有两个不同的测试课程:Java 一个测试类中存在的@BeforeMethod能否适用于另一个测试类中的方法?,java,selenium,selenium-webdriver,annotations,testng,Java,Selenium,Selenium Webdriver,Annotations,Testng,我有两个不同的测试课程: public class Class A{ @BeforeMethod public void beforeEachMethod(){ //} @Test(groups = "Login") public void testA(){ //} } @public class Class B{ @Test(dependsOnGroups = "Login") public void methodB(){ //} } 但是现在@BeforeMethod仅为类A中的
public class Class A{
@BeforeMethod
public void beforeEachMethod(){
//}
@Test(groups = "Login")
public void testA(){
//}
}
@public class Class B{
@Test(dependsOnGroups = "Login")
public void methodB(){
//}
}
但是现在@BeforeMethod仅为类A中的方法调用。即使类B中的方法成功运行,也不会为类B中的方法调用它
我希望公共类A中的@BeforeMethod也能为类B中的方法调用
我希望@BeforeMethod只出现在类A中,我会有几个其他类,如类B、类C、类D等。是否可以为所有其他类调用一个@BeforeMethod?方法
BeforeAchMethod()
属于类A
,因此,它将仅在执行类A
中的测试时运行。如果希望它在每次测试之前运行,那么可以使用该方法创建一个抽象基类,并让每个测试类从中继承
public class TestCase {
@BeforeMethod
public void beforeEachMethod() {
}
}
public class A extends TestCase {
@Test(groups = "Login")
public void testA() {
}
}
public class B extends TestCase {
@Test(dependsOnGroups = "Login")
public void methodB() {
}
}
此解决方案不满足以下条件:我希望@BeforeMethod仅出现在类中A@cruisepandey然后你必须明确地调用它。这些是你的选择。谢谢。实际上我已经有了另一个类,我正在扩展到每个测试类。除了每个测试类使用的wait方法之外,它还有ExtentReport方法和屏幕截图方法。它不是一个抽象类。使用抽象类而不是我正在扩展的普通父类在这里有什么帮助?我必须使其抽象吗?@666基类是否抽象与你的问题无关,使其抽象与否还有其他原因。在我的情况下,我将始终必须扩展我的普通类。在这种情况下如何使用抽象类?