diff --git a/build.gradle b/build.gradle index 6ba3c5e1..ad67a152 100644 --- a/build.gradle +++ b/build.gradle @@ -179,7 +179,9 @@ openapiProcessor { } } sourceSets.main.java.srcDir 'build/generated/sources/openapi' + abstract class ProcessSpring extends DefaultTask {} + tasks.register('processSpring', ProcessSpring) ['processSpringRoot', 'processSpringRbac', @@ -253,19 +255,23 @@ licenseReport { } project.tasks.check.dependsOn(checkLicense) -// JaCoCo Test Code Coverage -jacoco { - toolVersion = "0.8.10" -} + +// HOWTO: run all unit tests: gw test test { finalizedBy jacocoTestReport // generate report after tests excludes = [ 'net.hostsharing.hsadminng.**.generated.**', ] useJUnitPlatform { - excludeTags 'importOfficeData', 'importHostingData', 'scenarioTest' + excludeTags 'importOfficeData', 'importHostingAssets', 'scenarioTest', 'generalIntegrationTest', + 'officeIntegrationTest', 'bookingIntegrationTest', 'hostingIntegrationTest' } } + +// JaCoCo Test Code Coverage for unit-tests +jacoco { + toolVersion = "0.8.10" +} jacocoTestReport { dependsOn test afterEvaluate { @@ -330,6 +336,66 @@ jacocoTestCoverageVerification { } } +// HOWTO: run all integration tests which are not specific to a module, like base, rbac, config etc. +tasks.register('generalIntegrationTest', Test) { + useJUnitPlatform { + includeTags 'generalIntegrationTest' + } + + group 'verification' + description 'runs integration tests which are not specific to a module, like base, rbac, config etc.' + + mustRunAfter spotlessJava +} + +// HOWTO: run all integration tests of the office module: gw officeIntegrationTest +tasks.register('officeIntegrationTest', Test) { + useJUnitPlatform { + includeTags 'officeIntegrationTest' + } + + group 'verification' + description 'runs integration tests of the office module' + + mustRunAfter spotlessJava +} + +// HOWTO: run all integration tests of the booking module: gw bookingIntegrationTest +tasks.register('bookingIntegrationTest', Test) { + useJUnitPlatform { + includeTags 'bookingIntegrationTest' + } + + group 'verification' + description 'runs integration tests of the office module' + + mustRunAfter spotlessJava +} + +// HOWTO: run all integration tests of the hosting module: gw hostingIntegrationTest +tasks.register('hostingIntegrationTest', Test) { + useJUnitPlatform { + includeTags 'hostingIntegrationTest' + } + + group 'verification' + description 'runs integration tests of the office module' + + mustRunAfter spotlessJava +} + +// HOWTO: run all tests except import- and scenario-tests: gw standardTest +tasks.register('standardTest', Test) { + useJUnitPlatform { + excludeTags 'importOfficeData', 'importHostingAssets', 'scenarioTest' + } + + group 'verification' + description 'runs all tests except import- and scenario-tests' + + mustRunAfter spotlessJava +} + tasks.register('importOfficeData', Test) { useJUnitPlatform { includeTags 'importOfficeData' @@ -373,7 +439,7 @@ pitest { ] targetTests = ['net.hostsharing.hsadminng.**.*UnitTest', 'net.hostsharing.hsadminng.**.*RestTest'] - excludedTestClasses = ['**AcceptanceTest*', '**IntegrationTest*'] + excludedTestClasses = ['**AcceptanceTest*', '**IntegrationTest*', '**ImportOfficeData', '**ImportHostingAssets'] pitestVersion = '1.17.0' junit5PluginVersion = '1.1.0'