4
votes

My build.gradle looks like this:

apply plugin: 'scala'
apply plugin: 'java'

sourceCompatibility = 1.8
version = '1.0'

repositories {
    mavenCentral()
}

dependencies {
    compile "org.scala-lang:scala-library:2.11.4"

    compile 'org.reactivestreams:reactive-streams:1.0.0.RC1'
    compile 'org.reactivestreams:reactive-streams-tck:1.0.0.RC1'

    testCompile group: 'junit', name: 'junit', version: '4.11'
    testCompile group: 'org.testng', name: 'testng', version: '5.14.10'
}

test {
    useTestNG()
}

I have some implementation in Scala, and TestNG test in java. The test class actually does not contain any tests, but it's parent class does. Gradle seems to think there are no tests in the class.

Skipping task ':testClasses' as it has no actions.
:testClasses UP-TO-DATE
:testClasses (Thread[main,5,main]) completed. Took 0.001 secs.
:test (Thread[main,5,main]) started.
:test
Skipping task ':test' as it is up-to-date (took 0.048 secs).
:test UP-TO-DATE

The test class is compiled in build/classes/test

1
Is the project hosted online?Opal
Nope. I'll push it to github later.amorfis
I've correct output with gradle v2.2.1 for cmd gradle clean test. It seems that everything works fine.Opal
Ok, when run with -i and gradlew it indeed skips testClasses.Opal

1 Answers

6
votes

tl;dr

Add the following piece of code to build.gradle:

tasks.withType(Test) {
    scanForTestClasses = false
    include "**/*Test.class" // whatever Ant pattern matches your test class files
}

explanation:

Here's the bug that causes problem you met. And here the solution can be found. Don't forget to upvote all answers (I mean Peter's) ;)