[arquillian-issues] [JBoss JIRA] (ARQ-1340) Drone webdriver is not created during @BeforeClass

Lukáš Fryč (JIRA) jira-events at lists.jboss.org
Thu Mar 7 04:37:56 EST 2013


    [ https://issues.jboss.org/browse/ARQ-1340?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12759326#comment-12759326 ] 

Lukáš Fryč commented on ARQ-1340:
---------------------------------

Honestly, accessing {{WebDriver}} instance in {{@BeforeClass}} appears to be anti-pattern:

* {{@BeforeClass}} is invoked just once before the class
* we expect to start from fresh for each {{@Test}}
* when one {{@Test}} fails, there is nothing which will re-open the page to let following {{@Test}} do the job
* which violates test isolation

I would rather use {{@Before}} which can be with {{@Drone}} just fine.

Could you please elaborate your use case more to help us understand why you require to use {{@BeforeClass}}?
It might be valid use case, but I don't see it know.
                
> Drone webdriver is not created during @BeforeClass
> --------------------------------------------------
>
>                 Key: ARQ-1340
>                 URL: https://issues.jboss.org/browse/ARQ-1340
>             Project: Arquillian
>          Issue Type: Bug
>      Security Level: Public(Everyone can see) 
>          Components: Extension - Drone
>    Affects Versions: drone_1.1.1.Final
>         Environment: Arquillian JUnit Container 1.0.3.Final
> Arquillian Graphene Webdriver 2.0.0.Alpha3
> Arquillian Drone dependencies and Selenium dependencies 1.1.1.Final
> Arquillian Core dependencies 1.0.3.Final
> junit 4.8.1
> jdk 1.6
>            Reporter: Alex Okrushko
>            Assignee: Karel Piwko
>
> Drone webdriver is not created during @BeforeClass, however *is created during @Before or if called by GrapheneContext.getProxy()*
> The following does NOT work:
> {code:java} 
> @RunWith(Arquillian.class)
> public class TestDroneLogin {
> 	@Drone
> 	private static WebDriver driver;
> 	
> 	@BeforeClass
> 	public static void setup(){
> //GrapheneContext.getProxy().navigate().to("http://google.com");
> 		driver.navigate().to("http://google.com");
> 	}
> 	
> 	@Test
> 	public void testInput(){
> 		driver.findElement(By.cssSelector("input#gbqfq"));
> 	}
> }
> {code} 
> However, if I use {{GrapheneContext.getProxy()}} instead of {{driver}}, everything works as expected:
> {code:java} 
> @BeforeClass
> 	public static void setup(){
> 		GrapheneContext.getProxy().navigate().to("http://google.com");
> 	}
> {code}
> ALSO, if {{@Before}} is used then Drone webdriver is created as expected, so this problem is specific to {{@BeforeClass}}

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira



More information about the arquillian-issues mailing list