Метод TestNG @BeforeMethod не вызывается, когда он находится в суперклассе и запущена определенная группа

Я пытаюсь использовать группу для запуска подмножества тестов, относящихся к тому, над чем я работаю, называется "текущим ". Проблема в том, что если я использую суперкласс для выполнения некоторых настроек в @BeforeMethod, метод запускается, когда я запускаю все тесты, но не работает, когда я запускаю только с указанной группой "current".

Итак, когда я запускаю все тесты, emptyTest завершается ошибкой, потому что вызывается @BeforeMethod, при простом запуске группы current метод не вызывается. Примечание. Если я добавлю @Test (groups = {"current"}) к подклассу, он будет запущен, однако он также запустит все подклассы, не помеченные словом "current", что противоречит цели "текущей" группы. .

Если есть лучший способ добиться такого поведения, я открыт для всех решений.

Спасибо, Выкуп

Суперкласс:

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

Подкласс:

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

Конфигурация TestNG:

<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>
16
задан Ransom Briggs 16 February 2011 в 18:01
поделиться