我有一套測試用例。我希望分別在測試用例執行之前和之後調用@BeforeClass & @AfterClass。當我使用JUnit運行套件類時,它會正確調用方法,即setUp()將在測試用例之前調用,而tearDown()將在測試用例完成後調用。但是,當我執行maven來執行測試用例並生成報告時神火它不是調用設置()&拆解()沒有調用@BeforeClass和@AfterClass的套件類
@RunWith(Suite.class)
@FixMethodOrder(MethodSorters.NAME_ASCENDING)
@SuiteClasses({test1.class, test2.class})
public class SuiteClass{
public static WebDriver driver;
public static String baseUrl;
public static StringBuffer verificationErrors = new StringBuffer();
@BeforeClass
public static void setUp() throws Exception {
driver = new FirefoxDriver();
baseUrl = "http://localhost:7070/myproject/";
driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
}
@AfterClass
public static void tearDown() throws Exception {
driver.quit();
String verificationErrorString = verificationErrors.toString();
if (!"".equals(verificationErrorString)) {
fail(verificationErrorString);
}
}
}
我沒有看到Surefire如何識別你的測試類,除非它有一個'@ test'註釋。 – djangofan
@djangofan,謝謝,你是對的,surefire不包括suiteclass。有沒有辦法將套件類包含在內? – Nevin
Surefire會在你的'src/test/java'文件夾中自動掃描它。所以,如果你沒有包含Test註解的類,那麼Surefire不會找到它們是有意義的。 – djangofan