import org.apache.tools.ant.util.TeeOutputStream apply plugin: 'org.junit.platform.gradle.plugin' ext { junitJupiterVersion = '5.0.0-M2' } dependencies { testCompile "org.junit.jupiter:junit-jupiter-api:${junitJupiterVersion}" testRuntime "org.junit.jupiter:junit-jupiter-engine:${junitJupiterVersion}" } junitPlatform { includeClassNamePattern '.*' } /* Store test output in $projectName/tests JUnit 5's junitPlatformTest runs as a "javaExec" rather than a "test", so we can't hook into the before/after test behavior. */ tasks.findByPath(":$name:junitPlatformTest").configure { File testDir = file("tests") if(testDir.exists()) { File outFile = new File(testDir, 'report.txt') doFirst { standardOutput = new TeeOutputStream(new FileOutputStream(outFile, true), System.out) } doLast { if(outFile.size() == 0) outFile.delete() else if(outFile.text.contains("0 tests found")) outFile.delete() } } }