同じ基本クラスを継承した以下のセレンテストスイートがあります。テストスイート全体を実行すると、同じWebドライバインスタンスを使用する方法は?また、各テストを独立して実行したい私はこれがスイートをかなり動かすのにかかる時間を短縮すると信じています。セレンスイート全体で同じWebドライバを使用
このテストはmavenから実行され、各テストクラスが実行されます。
@RunWith(Suite.class)
@SuiteClasses({
AdminPortalTestSuite.class,
DevPortalTestSuite.class,
CommonTestSuite.class
})
public class SeleniumTestSuite {
}
基底クラスのすべてのテストは、あなたがここで提案解決しようとしているように見える...私はJUnitを用いた素晴らしいじゃない
@BeforeClass
public static void setUp() throws Exception {
if (null == baseUrl || !baseUrl.startsWith("https://")) {
baseUrl = "https://localhost:8443";
}
if (null == browser || browser.startsWith("${")) {
browser = "firefox";
}
//retrieve properties including locale.
retrieveProperties();
Thread.sleep(4000);
setUpDriver();
}
@After
public void tearDownAfterTest() {
openUrl(LIST_PARTNERS);
adminPortalLogout();
openUrl(DASHBOARD);
developerPortalLogout();
driver.manage().deleteAllCookies();
}
@AfterClass
public static void tearDown() throws Exception {
BaseFunctionalTestCase.driver.quit();
}
試験例
public class APApplicationFunctionalTestCase extends BaseFunctionalTestCase {
/**
* Test validation when creating a new application.
*/
@Test
public void testApplicationValidation() {
Assume.assumeTrue(preHtml5);
final String partnerName = randomize("partner");
//create partner
createPartnerThroughAP(partnerName);
adminPortalLogin();
openUrl(ADD_APPLICATION + partnerName);
waitForId("applicationView.applicationName");
findById("submit-button").click();
waitForId("submit-button");
//check validation
assertTrue("Failed to validate application name",
isTextPresent(resolveAPMessage("partner", "application.messages",
"NotEmpty.applicationEditView.applicationView.applicationName")));
assertTrue("Failed to validate application username",
isTextPresent(resolveAPMessage("partner", "application.messages",
"NotEmpty.applicationEditView.applicationView.applicationUserName")));
assertTrue("Failed to validate application password",
isTextPresent(resolveAPMessage("partner", "application.messages",
"Password.applicationEditView.applicationView.applicationPassword")));
assertTrue("Failed to validate application password confirmation",
isTextPresent(resolveAPMessage("partner", "application.messages",
"Length.applicationEditView.applicationPasswordConfirmation")));
}
私はそのように行うために使用。ここでは、ドライバがnullに等しい場合にドライバを初期化するgetDriver()メソッドを持つ基本的なSingletonパターンクラスを作成する必要があると思いますが、それ以外の場合は呼び出し元にシングルトンを返します。 – djangofan