paypal/SeLion

Session sharing for `@MobileTest` requires the annotation on both the class and the methods

Closed this issue · 1 comments

mach6 commented

When you session share for a @MobileTest the annotation is required with every @Test annotation. This is not the intended design and is not consistent with approach when session sharing a @WebTest

Example code which works, but should not;

@MobileTest
@Test(singleThreaded = true)
public class MobileTestTest {
    private static SessionId sessionId;

    @Test(priority = 0)
    @MobileTest(appName = "safari", device = "iphone:8.1", deviceType = "iPhone Simulator")
    public void mobileTest_part1() {
        RemoteWebDriver driver = Grid.driver();
        assertNotNull(driver);
        driver.get("http://www.selion.io");
        SeLionReporter.log("screenshot 1", true);
        sessionId = driver.getSessionId();
    }

    @Test(priority = 1)
    @MobileTest(appName = "safari", device = "iphone:8.1", deviceType = "iPhone Simulator")
    public void mobileTest_part2() {
        RemoteWebDriver driver = Grid.driver();
        assertNotNull(driver);
        assertEquals(driver.getSessionId().toString(), sessionId.toString());
        SeLionReporter.log("screenshot 2", true);
        driver.get("http://www.github.com/paypal/selion");
        SeLionReporter.log("screenshot 3", true);
        SeLionReporter.log("screenshot 4", true);
    }

Example code which does not work, but should;

@MobileTest(appName = "safari", device = "iphone:8.1", deviceType = "iPhone Simulator")
@Test(singleThreaded = true)
public class MobileTestTest {
    private static SessionId sessionId;

    @Test(priority = 0)
    public void mobileTest_part1() {
        RemoteWebDriver driver = Grid.driver();
        assertNotNull(driver);
        driver.get("http://www.selion.io");
        SeLionReporter.log("screenshot 1", true);
        sessionId = driver.getSessionId();
    }

    @Test(priority = 1)
    public void mobileTest_part2() {
        RemoteWebDriver driver = Grid.driver();
        assertNotNull(driver);
        assertEquals(driver.getSessionId().toString(), sessionId.toString());
        SeLionReporter.log("screenshot 2", true);
        driver.get("http://www.github.com/paypal/selion");
        SeLionReporter.log("screenshot 3", true);
        SeLionReporter.log("screenshot 4", true);
    }
mach6 commented

fixed with b979d9c