TestNG & Selenium: Separate tests into “groups”, run ordered inside each group

后端 未结 3 1544
说谎
说谎 2021-01-02 21:30

We use TestNG and Selenium WebDriver to test our web application.

Now our problem is that we often have several tests that need to run in a certain order, e.g.:

3条回答
  •  感情败类
    2021-01-02 21:59

    There is an easy (whilst hacky) workaround for this if you are comfortable with your first approach:

    At first we just put tests that belong together into one class, and used dependsOnMethods to make them run in the right order. This used to work in TestNG V5, but in V6 TestNG will sometimes interleave tests from different classes (while respecting the ordering imposed by dependsOnMethods). There does not seem to be a way to tell TestNG "Always run tests from one class together".

    We had a similar problem: we need our tests to be run class-wise because we couldn't guarantee the test classes not interfering with each other.

    This is what we did: Put a

    @Test( dependsOnGroups= { "dummyGroupToMakeTestNGTreatThisAsDependentClass" } )
    

    Annotation on an Abstract Test Class or Interface that all your Tests inherit from. This will put all your methods in the "first group" (group as described in this paragraph, not TestNG-groups). Inside the groups the ordering is class-wise. Thanks to Cedric Beust, he provided a very quick answer for this.

    Edit: The group dummyGroupToMakeTestNGTreatThisAsDependentClass actually has to exist, but you can just add a dummy test case for that purpose..

提交回复
热议问题