Мое чтение документов TestNG предполагает, что если у меня есть метод теста, помеченный так:
@BeforeSuite(alwaysRun = true)
@Test
public void MyTestMethod { ... }
затем MyTestMethod
будет запущен перед любым другим определенным где-либо тестом, независимо от класса, набора или группы. Но, похоже, это не так.
Есть ли способ заставить тестовый метод безоговорочно запускаться раньше всего? (И что в случае неудачи другие тесты не будут запущены.)
Edit:
Тестовый класс:
class Suite_Setup
extends BaseTestSuite
{
@BeforeSuite(alwaysRun = true)
def setup() {
System.out.println("Conducting test suite setup...")
// Verify that the internal API is configured properly and that the API host is available...
new Action(ApiHostname, new BasicCookieStore)
}
}
Edit:
Ответ:
Мы генерируем наши собственные файлы TestNG.xml (автоматически), и метод @BeforeSuite в него не включается. После включения @BeforeSuite
имел ожидаемый эффект.
Однако, похоже, что и @BeforeSuite
(и предположительно другие @Before...
и @After...
аннотации) можно можно смешивать с @Test
и вместо того, чтобы препятствовать выполнению аннотированного метода, они заставляют его запускать более одного раза!
Кроме того, я упускаю возможность не указывать, какую версию TestNG я использую. Сейчас 6,2.