[英]@BeforeClass method execution in TestNG during inheritence
我剛剛開始使用TestNG,我有一個問題。 如果類A
有一個@BeforeSuite
方法並且類B
繼承類A
,如下例所示:
A類文件:
class A
{
@BeforeSuite
public void beforeTest()
{
//something
}
}
B類文件:
class B extends A
{
@Test
public void executeTest()
{
//something
}
}
因此,在這種情況下,當我嘗試執行ClassB:executeTest()
時, A
類的@BeforeSuite
肯定會運行。 有什么方法可以禁用@BeforeSuite
方法的運行,而不排除繼承或禁用@Test
方法?
您可以像下面的示例一樣覆蓋方法。 在這種情況下不會執行基類的@BeforeSuite
。
測試A:
import org.testng.annotations.BeforeSuite;
import org.testng.log4testng.Logger;
public class TestA {
protected static Logger LOGGER = Logger.getLogger(TestA.class);
@BeforeSuite
public void beforeSuite() {
LOGGER.warn("beforeSuite - TestA");
}
}
測試B:
import org.testng.annotations.BeforeSuite;
import org.testng.annotations.Test;
public class TestB extends TestA {
@BeforeSuite
public void beforeSuite() {
LOGGER.warn("beforeSuite - TestB");
}
@Test
public void executeTest() {
LOGGER.warn("executeTest - TestB");
}
}
運行 TestB 並檢查輸出:
[TestA] [WARN] beforeSuite - TestB
[TestA] [WARN] executeTest - TestB
===============================================
Default Suite
Total tests run: 1, Failures: 0, Skips: 0
===============================================
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.