-
По умолчанию Gradle выполняет все обнаруженные тесты,
проверяя скомпилированные тестовые классы.
Когда мы указываем useTestNG(),
Gradle сканирует все методы с аннотацией
@Test и выполняет их. Ниже приведена базовая конфигурация
в файле build.gradle:
plugins {
id 'java'
}
group 'com.test'
version '1.0-SNAPSHOT'
sourceCompatibility = 1.8
repositories {
mavenCentral()
}
dependencies {
compile group: 'org.testng', name: 'testng', version: '6.14.3'
}
test {
useTestNG()
}
-
Включение и исключение отдельных групп тестов:
test {
useTestNG() {
includeGroups 'smoke', 'sanity'
excludeGroups 'regression'
}
}
-
Для отображения вывода тестов в STDOUT и STDERR для JVM консоли:
testLogging.showStandardStreams = true
-
Использование всех дефолтных отчётов TestNG -
TestNG HTML отчёт, XML результат в JUnit формате, HTML test отчёт для E-mail и
XML результаты в TestNG формате. Если не заблокировать HTML-отчёт от Gradle,
то он заменит собой HTML-отчёт от TestNG:
useDefaultListeners = true
reports.html.enabled = false
-
Но если всё же нужны одновременно HTML-отчёты и от TestNG, и от Gradle, то
нужно заменить дефолную директорию ($buildDir/reports/tests/test) Gradle отчёта:
reports.html.setDestination(file("$buildDir/html"))
-
Если нужно изменять директорию отчёта из командной строки, то можно так:
useTestNG {
def dir = System.getProperty("testngReportOutput")
outputDirectory = dir ? file(dir) : file("$buildDir/testng-output")
}
И в командной строке указывать директорию отчёта:
gradle -DtestngReportOutput=testReport clean test
-
Если нужно использовать какие-либо listeners для создания расширенных или
настраиваемых отчетов testng, то можно добавить их полные классы в build.gradle :
test {
useTestNG() {
listeners << 'com.listeners.TestListener'
}
}
-
Запуск из командной строки отдельного тестового класса:
gradle test --tests com.example.testClass
-
Запуск из командной строки отделного тестового метода:
gradle test --tests com.example.testClass.testMethod
-
Для запуска нескольких методов из класса следует использовать wildcard:
gradle test --tests com.example.testClass.*someMethod*
-
Можно и несколько классов запускать с wildcard:
gradle test --tests com.example.testClass*
-
Чтобы отобразить результаты теста в консоли, можно добавить события
теста в build.gradle:
test {
useTestNG() {
useDefaultListeners = true
}
testLogging {
events "PASSED", "FAILED", "SKIPPED"
}
}