Baru mulai bereksperimen dengan Selenium 2.18. Mengapa Selenium membuat instance baru "Remote Control" di antara setiap item pengujian JUnit?
Saya membuat beberapa unit test yang disebut testA, testB, testC dan inilah yang terjadi:
setUp:
0. Create static instance of DefaultSelenium
testA:
1. Selenium starts instance of "Remote Control"
2. Selenium starts web browser an opens app
testB:
3. Selenium starts new instance of "Remote Control"
4. Selenium kills first instance of "Remote Control"
5. Script sends existing browser to a URL on the local system (probably
a temp file of some kind)
Jadi, pertanyaan saya adalah, mengapa saya tidak bisa membuat Selenium hanya memiliki satu instance konstan dari "Remote Control" dan juga satu instance konstan dari browser Web di seluruh testA, testB, dan testC?
CATATAN: langkah#5 mengkhawatirkan saya: jika langkah itu tidak mengalihkan ke file lokal, kemungkinan remote control pada langkah#4 menemukan konten di halaman. Apakah ini terjadi karena instance baru "Remote Control" tidak mengetahui keberadaan browser yang dimulai oleh "Remote Control" pertama?
import org.junit.AfterClass;
import org.junit.BeforeClass;
import org.junit.runner.RunWith;
import org.junit.runners.Suite;
import org.junit.runners.Suite.SuiteClasses;
import org.openqa.selenium.server.RemoteControlConfiguration;
import org.openqa.selenium.server.SeleniumServer;
@RunWith(Suite.class)
@SuiteClasses({ Tests.class })
public class AllTests {
static SeleniumServer seleniumserver;
@BeforeClass
public static void setUpClass() throws Exception {
RemoteControlConfiguration settings = new RemoteControlConfiguration();
settings.setTrustAllSSLCertificates(true);
seleniumserver=new SeleniumServer(settings);
seleniumserver.boot();
seleniumserver.start();
System.out.println("Finished suite setUpClass");
}
...
Dan untuk klien saya:
public class Tests extends SeleneseTestBase {
private static DefaultSelenium selenium;
@Before
public void setUp() throws Exception {
selenium = new DefaultSelenium("localhost", 4444, "*firefox", "http://localhost:8181/");
selenium.start();
}
public void testA() { System.out.println("TestA"); }
public void testB() { System.out.println("TestB"); }
public void testC() { System.out.println("TestC"); }