Есть отличная удаленная работа для php+codeception+jenkins+allure+docker спецов. 100% remote! Присоединиться к проекту

Как создать сьюты в JUnit 5 и запускать их из Gradle?

gradle
junit
java
Теги: #<Tag:0x00007f7b640df660> #<Tag:0x00007f7b640df520> #<Tag:0x00007f7b640df3e0>

(Роман Румянцев) #1

Попытался раскидать свои тесты на junit 5 по разным сьютам. Мне нужно сделать разные таски для Gradle. Какие есть варианты? Гугление дает очень странные результаты:


Но я что то не пойму, в каком пакете живут те аннотации, о которых говорят.
Есть может быть у кого то рабочий пример?


(Vatslau) #2
test {
    useJUnitPlatform()
    filter {
        //specific test method
        includeTestsMatching "org.gradle.SomeTest.someSpecificFeature"

        //specific test method, use wildcard for packages
        includeTestsMatching "*SomeTest.someSpecificFeature"

        //specific test class
        includeTestsMatching "org.gradle.SomeTest"

        //specific test class, wildcard for packages
        includeTestsMatching "*.SomeTest"

        //all classes in package, recursively
        includeTestsMatching "com.gradle.tooling.*"

        //all integration tests, by naming convention
        includeTestsMatching "*IntegTest"

        //only ui tests from integration tests, by some naming convention
        includeTestsMatching "*IntegTest*ui"

        includeClassNamePatterns '.*Should'
    }
}
task testWithDockerChrome(type: Test) {
    filter {
        includeTestsMatching 'ShouldSeleniumContainerTest'
    }
    ignoreFailures = true
    testLogging.exceptionFormat = 'full'
    testLogging {
        events "passed", "skipped", "failed"
    }
//    systemProperties System.properties
    systemProperties = [
            'file.encoding'   : 'UTF-8',
            'selenide.browser': 'chrome',
            'BUILD_URL'       : System.getenv()['BUILD_URL'],
    ]
}

честно говоря не вижу никаких преимуществ перед ТестНг(


(Михаил Братухин) #3

Ссылка на какой-то учебник, который писался, когда не было поддержки junit5 по junit4? Там полно комментариев об этом. Люди жалуются, что код нерабочий или для винтажной версии в лучшем случае.
Есть же официальная документация по junit5, причем довольно толковая:
https://junit.org/junit5/docs/current/user-guide/

Я в своё время уделил немного времени на изучение 5-й версии, не нашел для себя ничего особо ценного, зато увидел массу проблем и откатился на 4-ую. В 5-й версии есть tag’и, который в принципе чем-то могут быть равносильны комплектам из 4-го:
https://junit.org/junit5/docs/current/user-guide/#writing-tests-meta-annotations
https://junit.org/junit5/docs/current/user-guide/#syntax-rules-for-tags
https://junit.org/junit5/docs/current/user-guide/#running-tests-build-gradle

Там же ниже было и про Suites, но опять-таки для 4й версии (винтажной):
https://junit.org/junit5/docs/current/user-guide/#running-tests-junit-platform-runner-test-suite

Если не секрет, то почему на 5й переходите? Что-то дает новое и полезное, чего не хватало в 4-м? Не спорю, что новые и даже полезные штуки в 5-м имеются, но те сложности, которые он за собой привносил меня остановили от миграции.


(Vatslau) #4

шапка мономаха из фикстур)))


(Михаил Братухин) #5

Ага, я их шапкой английского гвардейца называю :joy::joy::joy:
Вот тут описывал свои “претензии” к 5-ке и почему от неё пришлось отказаться до лучших времен:


(Роман Румянцев) #6

Да не переходим. Просто начал я проект с 5 вот и все. У меня особого мнения на счет junit нет, ну и так как его нет взял просто последнюю версию.