TestNG - фреймворк для автоматизации тестирования
TestNG - фреймворк для автоматизации тестирования на Java. Предоставляет функционал различных аннотаций для управления тестами, настройками, зависимостями и параметризацией.
Установка TestNG текущей версии выпуска:
Maven
<dependency><groupId>org.testng</groupId><artifactId>testng</artifactId><version>7.9.0</version><scope>test</scope></dependency>
Gradle
dependencies {
testCompile 'org.testng:testng:7.9.0'}
Сборка TestNG из исходного кода
Исходный код TestNG на GitHub и сборка:
$ git clone git://github.com/testng-team/testng.git
$ cd testng
$ ./gradlew build
Аннотации в TestNG начинаются с символа `@`.
Основные аннотации TestNG:
@BeforeSuite - метод будет выполнен до того, как будут запущены все тесты из этого набора;
@AfterSuite - метод будет запущен после выполнения всех тестов из этого набора;
@BeforeTest- метод будет выполнен перед любым тестовым методом, принадлежащим классам, находящимся внутри тега «test»;
@AfterTest - метод будет выполнен после того, как будут выполнены все тестовые методы, принадлежащие классам внутри тега «test»;
@BeforeGroups - список групп, перед которыми будет запущен данный метод конфигурации;
@AfterGroups - список групп, после которых будет выполняться этот метод конфигурации;
@BeforeClass - метод будет выполнен до вызова первого тестового метода в текущем классе;
@AfterClass - метод будет выполнен после того, как будут выполнены все тестовые методы в текущем классе;
@BeforeMethod - метод будет запущен перед каждым тестовым методом;
@AfterMethod - метод будет запущен после каждого тестового метода.
Порядок выполнения аннотаций:
@BeforeSuite
@BeforeTest
@BeforeClass
@BeforeMethod
@Test (Тестовый метод 1)
@AfterMethod
@BeforeMethod
@Test (Тестовый метод 2)
@AfterMethod
@AfterClass
@AfterTest
@AfterSuite
Атрибуты аннотации `@Test`:
dependsOnMethods и dependsOnGroups - определяют зависимости между тестами. Зависимые методы выполнятся только после успешного выполнения указанных методов или групп;
enabled = false - временно отключает тест без удаления кода;
groups - позволяет объединять тесты в логические группы;
priority - задаёт приоритет выполнения;
dataProvider - связывает тест с методом, помеченным @DataProvider, для параметризованного запуска с разными данными;
timeOut - устанавливает лимит времени в миллисекундах на выполнение теста.
Заключение:
TestNG - это фреймворк для тестирования, позволяет упростить и систематизировать модульное и интеграционное тестирование. Удобный и полезный инструмент для автоматизированной проверки работы функционала приложения.