Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- description = "API"
- val agent: Configuration by configurations.creating
- val restAssuredVersion by extra("4.5.1")
- val swaggerVersion by extra("2.2.0")
- val allureVersion by extra("2.18.0")
- val coveragePath: String by extra("${buildDir}/reports/swagger/coverage")
- configurations {
- testImplementation {
- extendsFrom(configurations.annotationProcessor.get())
- }
- }
- tasks.compileJava {
- options.compilerArgs.add("-Xplugin:Manifold")
- }
- tasks.compileTestJava {
- options.compilerArgs.add("-Xplugin:Manifold")
- }
- dependencies {
- agent("org.aspectj:aspectjweaver")
- implementation(project(":jira-client"))
- implementation(project(":model"))
- implementation("io.rest-assured:rest-assured")
- implementation("io.rest-assured:json-path:${restAssuredVersion}")
- implementation("io.rest-assured:xml-path:${restAssuredVersion}")
- implementation("io.rest-assured:json-schema-validator:${restAssuredVersion}")
- implementation("io.qameta.allure:allure-rest-assured:${allureVersion}") {
- exclude(group = "org.slf4j", module = "slf4j-api")
- }
- implementation("commons-validator:commons-validator:1.7")
- implementation("io.swagger.core.v3:swagger-core:2.2.0")
- implementation("io.swagger:swagger-models:1.6.6")
- implementation("com.github.viclovsky:swagger-coverage-rest-assured:1.5.0") {
- exclude(group = "org.slf4j", module = "slf4j-simple")
- }
- implementation("org.aeonbits.owner:owner")
- implementation("com.github.ben-manes.caffeine:caffeine")
- implementation("io.qameta.allure:allure-testng") {
- exclude(group = "org.testng", module = "testng")
- }
- implementation("ch.qos.logback:logback-classic:1.2.11")
- implementation("io.github.sskorol:test-data-supplier")
- implementation("org.testng:testng")
- implementation("org.assertj:assertj-core")
- implementation("org.aspectj:aspectjrt")
- implementation("org.aspectj:aspectjweaver")
- implementation("systems.manifold:manifold-ext")
- implementation("systems.manifold:manifold-ext-rt")
- implementation("org.jsoup:jsoup")
- implementation("org.awaitility:awaitility")
- compileOnly("com.google.code.findbugs:annotations")
- compileOnly("com.google.code.findbugs:jsr305")
- implementation("io.ebean:ebean")
- implementation("org.postgresql:postgresql")
- testImplementation("io.ebean:ebean-test")
- annotationProcessor("io.ebean:querybean-generator")
- testAnnotationProcessor("io.ebean:querybean-generator")
- annotationProcessor("systems.manifold:manifold-ext")
- testAnnotationProcessor("systems.manifold:manifold-ext")
- annotationProcessor("org.projectlombok:lombok")
- compileOnly("org.projectlombok:lombok")
- testImplementation("org.projectlombok:lombok")
- testAnnotationProcessor("org.projectlombok:lombok")
- }
- tasks.register<Delete>("cleanRootBuild") {
- delete(rootProject.buildDir)
- }
- tasks.clean {
- dependsOn("cleanRootBuild")
- }
- tasks.test {
- val shouldTrackCoverage = System.getenv("SHOULD_TRACK_COVERAGE") ?: "true"
- val suiteName = System.getenv("API_SUITE_NAME") ?: "smoke-suite-api"
- val jiraUrl = System.getenv("JIRA_URL")
- val jiraIssuePattern = "${jiraUrl}/browse/{}"
- val loggingPattern = "[%1\$tF %1\$tT] [%4\$-4s] %5\$s%6\$s%n"
- systemProperty("allure.model.indentOutput", true)
- systemProperty("allure.link.issue.pattern", jiraIssuePattern)
- systemProperty("allure.link.tms.pattern", jiraIssuePattern)
- systemProperty("java.util.logging.SimpleFormatter.format", loggingPattern)
- systemProperty("org.freemarker.loggerLibrary", "SLF4J")
- useTestNG(closureOf<TestNGOptions> {
- useDefaultListeners = false
- suites("src/test/resources/${suiteName}.xml")
- })
- doFirst {
- jvmArgs("-javaagent:${agent.singleFile}")
- }
- if (shouldTrackCoverage.toBoolean()) {
- finalizedBy("generateSwaggerReport")
- }
- }
- tasks.register<Exec>("generateSwaggerReport") {
- val binPath = "${projectDir}/bin"
- commandLine("sh", "-c", "java -jar ${binPath}/swagger-coverage-cli-1.0.3.jar " +
- "-s ${binPath}/swaggerSpec.json " +
- "-c ${binPath}/swaggerConfig.json " +
- "-i $coveragePath")
- }
- tasks.register<Exec>("pullSwaggerSpec") {
- val apiHost = System.getenv("API_URL") ?: "api.dev.project.name.com"
- commandLine("wget", "https://${apiHost}/swagger/?format=openapi", "-O", "bin/swaggerSpec.json")
- }
- sonarqube {
- properties {
- properties(
- hashMapOf<String, String>(
- "sonar.branch" to "api"
- )
- )
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment