plugins { id 'bisq.application' id 'bisq.gradle.app_start_plugin.AppStartPlugin' } application { mainClass = 'bisq.apitest.ApiTestMain' applicationDefaultJvmArgs = ['-Dlogback.configurationFile=apitest/build/resources/main/logback.xml'] } // The external dao-setup.gradle file contains tasks to install and clean dao-setup // files downloaded from // https://github.com/bisq-network/bisq/raw/master/docs/dao-setup.zip // These tasks are not run by the default build, but they can can be run during // full or partial builds, or by themselves. // To run the regular clean + build + test (non api), and install dao-setup files: // ./gradlew clean build :apitest:installDaoSetup // To install or re-install dao-setup file only: // ./gradlew :apitest:installDaoSetup -x test // To clean installed dao-setup files: // ./gradlew :apitest:cleanDaoSetup -x test apply from: 'dao-setup.gradle' // We have to disable the :apitest 'test' task by default because we do not want // to interfere with normal builds. To run JUnit tests in this subproject: // Run a normal build and install dao-setup files first, then run: // 'gradle :apitest:test -DrunApiTests=true' test.enabled = System.getProperty("runApiTests") == "true" sourceSets { main { resources { exclude 'dao-setup' exclude 'dao-setup.zip' } } } test { outputs.upToDateWhen { false } // Don't use previously cached test outputs. testLogging { showStackTraces = true // Show full stack traces in the console. exceptionFormat = "full" // Show passed & failed tests, and anything printed to stderr by the tests in the console. // Do not show skipped tests in the console; they are shown in the html report. events "passed", "failed", "standardError" } afterSuite { desc, result -> if (!desc.parent) { println("${result.resultType} " + "[${result.testCount} tests, " + "${result.successfulTestCount} passed, " + "${result.failedTestCount} failed, " + "${result.skippedTestCount} skipped] html report contains skipped test info") // Show report link if all tests passed in case you want to see more detail, stdout, skipped, etc. if (result.resultType == TestResult.ResultType.SUCCESS) { DirectoryReport htmlReport = getReports().getHtml() String reportUrl = new org.gradle.internal.logging.ConsoleRenderer() .asClickableFileUrl(htmlReport.getEntryPoint()) println("REPORT " + reportUrl) } } } } dependencies { implementation enforcedPlatform(project(':platform')) implementation project(':proto') implementation project(':common') implementation project(':core') implementation project(':seednode') implementation project(':desktop') implementation project(':daemon') implementation project(':cli') annotationProcessor libs.lombok compileOnly libs.javax.annotation compileOnly libs.lombok implementation libs.logback.classic implementation libs.logback.core implementation libs.google.gson implementation libs.google.guava implementation libs.jopt implementation libs.apache.commons.lang3 implementation libs.slf4j.api implementation(libs.bitcoinj) { exclude(module: 'bcprov-jdk15on') exclude(module: 'guava') exclude(module: 'jsr305') exclude(module: 'okhttp') exclude(module: 'okio') exclude(module: 'slf4j-api') } implementation(libs.grpc.protobuf) { exclude(module: 'animal-sniffer-annotations') exclude(module: 'guava') } implementation(libs.grpc.stub) { exclude(module: 'animal-sniffer-annotations') exclude(module: 'guava') } testAnnotationProcessor libs.lombok testCompileOnly libs.lombok testRuntimeOnly libs.javax.annotation }