Лучший способ запустить только метод @BeforeClass - PullRequest
0 голосов
/ 20 января 2012

У меня есть тестовый класс, в котором есть метод @BeforeClass и метод @Test. Я запускаю тесты с помощью Ant. Я хотел бы знать, каков наилучший способ запуска только метода @BeforeClass, а не метода @Test. Вот основная схема кода:

@BeforeClass
public void init() throws Exception {
    /* Perform test initialization */
}

@Test
public void randomTest() throws Exception {
    /* Run the test */
}

Я попытался сделать метод @Test частью группы, а затем в Ant указать свойство "exclusgroups", чтобы исключить эту группу. Я также попытался отключить метод @Test. Ни один из этих методов не работал, потому что он не будет запускать ни метод @Test, ни метод @BeforeClass.

У меня есть один обходной путь: создать пустой метод @Test, а затем использовать любой из указанных выше методов, но это не выглядит элегантным решением.

Есть ли лучший способ запустить только метод @BeforeClass?

Edit:

Вот как я задаю задачу в моем файле build.xml:

<testng classpathref="test.classpath"
        outputdir="${reports}"
        haltonfailure="false"
        failureProperty="tests.failed"
        useDefaultListeners="true"                   listeners="org.uncommons.reportng.HTMLReporter,org.uncommons.reportng.JUnitXMLReporter"
        parallel="classes"
        suitename="Tests"
        testname="${test.name} Tests">

Ответы [ 3 ]

0 голосов
/ 20 января 2012

Если вы измените его на @BeforeSuite, он будет запущен без необходимости использования пустого метода @Test и исключения метода.Вы также можете отключить метод теста напрямую с помощью @Test (enabled = false).

0 голосов
/ 27 января 2012

В конечном итоге я решил просто поместить оператор if вокруг каждого метода @Test и заставить оператор оценивать свойство System.

0 голосов
/ 20 января 2012

Отключение метода @Test будет работать, но у вас должен быть хотя бы один метод тестирования в вашем классе, иначе TestNG ничего не будет в нем запускать, так что, возможно, добавьте пустой метод тестирования?Это своего рода странный сценарий запуска класса только для его метода конфигурации. Вы уверены, что эту конфигурацию нельзя поместить в другой класс?

...