Gradle и TestNG

Александр Ящук, Zoer, R5AM, Москва, 2019г.
На главную
  1. По умолчанию 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()
    	}
        


  2. Включение и исключение отдельных групп тестов:
    				
    	test {
    	    useTestNG() {
    	        includeGroups 'smoke', 'sanity'
    	        excludeGroups 'regression'
    	    }
    	}				
        


  3. Для отображения вывода тестов в STDOUT и STDERR для JVM консоли:
    				
    	testLogging.showStandardStreams = true
        


  4. Использование всех дефолтных отчётов TestNG - TestNG HTML отчёт, XML результат в JUnit формате, HTML test отчёт для E-mail и XML результаты в TestNG формате. Если не заблокировать HTML-отчёт от Gradle, то он заменит собой HTML-отчёт от TestNG:
    				
    	useDefaultListeners = true
    	reports.html.enabled = false
        


  5. Но если всё же нужны одновременно HTML-отчёты и от TestNG, и от Gradle, то нужно заменить дефолную директорию ($buildDir/reports/tests/test) Gradle отчёта:
    				
    	reports.html.setDestination(file("$buildDir/html"))
        


  6. Если нужно изменять директорию отчёта из командной строки, то можно так:
    				
        useTestNG {
            def dir = System.getProperty("testngReportOutput") 
            outputDirectory = dir ? file(dir) : file("$buildDir/testng-output")
        }				
        
    И в командной строке указывать директорию отчёта:
    				
        gradle -DtestngReportOutput=testReport clean test
        


  7. Если нужно использовать какие-либо listeners для создания расширенных или настраиваемых отчетов testng, то можно добавить их полные классы в build.gradle :
    				
        test {
            useTestNG() {
                listeners << 'com.listeners.TestListener'
            }
        }
        


  8. Запуск из командной строки отдельного тестового класса:
    				
        gradle test --tests com.example.testClass				
        


  9. Запуск из командной строки отделного тестового метода:
    				
        gradle test --tests com.example.testClass.testMethod
        


  10. Для запуска нескольких методов из класса следует использовать wildcard:
    				
        gradle test --tests com.example.testClass.*someMethod*				
        


  11. Можно и несколько классов запускать с wildcard:
    				
        gradle test --tests com.example.testClass*				
        


  12. Чтобы отобразить результаты теста в консоли, можно добавить события теста в build.gradle:
    				
        test {
            useTestNG() {
                useDefaultListeners = true
            }
            testLogging {
                events "PASSED", "FAILED", "SKIPPED"
            }
        }				
        






На главную
К началу страницы