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基类是否抽象与你的问题无关,使其抽象与否还有其他原因。在我的情况下,我将始终必须扩展我的普通类。在这种情况下如何使用抽象类?