La méthode TestNG @BeforeMethod n'est pas appelée lorsqu'elle réside dans la superclasse et qu'un groupe spécifique est exécuté

Je suis en train d'utiliser un groupe pour exécuter un sous-ensemble de tests pertinents pour ce que je suis en train de travailler sur appelé "courant". Le problème est que si j'utilise un super-classe à faire une certaine configuration dans un @BeforeMethod, la méthode s'exécute lorsque j'exécute tous les tests, mais ne fonctionne pas quand je l'exécute avec le groupe "actuel" spécifié.

Donc, quand je lance tous les tests, le emptyTest échoue parce que l' @BeforeMethod est appelé, au moment de l'exécution du groupe actuel, la méthode n'est pas appelée. Note: Si j'ajoute @Test(groupes = {"actuel"}) à la sous-classe, alors qu'il ne s'exécutent - cependant, il exécute toutes les sous-classes ne sont pas étiquetées avec "actuel", ce qui va à l'encontre de l'objectif de la "actuel" du groupe.

Si il ya une meilleure façon d'accomplir ce comportement, je suis ouvert à toutes les solutions.

Grâce,
Rançon

Superclasse:

public class TestNGSuperclass {
    @BeforeMethod
    public void failingToShowThatItIsNotRun() {
        Assert.fail();
    }
}

Sous-classe:

@Test(groups = {"current"})
public class TestNGCurrentGroup extends TestNGSuperclass {
    public void emptyTest() {}
}

TestNG Configuration:

<test name="current">
    <groups>
        <run>
            <include name="current"/>
        </run>
    </groups>
    <packages>
        <package name="uiowa.wf.test.*"/>
    </packages>
</test>
<test name="all-tests">
    <packages>
       <package name="uiowa.wf.test.*"/>
    </packages>
</test>

source d'informationauteur Ransom Briggs