Java Gradle文件未运行测试

Java Gradle文件未运行测试,java,eclipse,gradle,junit,Java,Eclipse,Gradle,Junit,我试图通过gradle文件运行junit测试,但构建成功,但没有运行任何测试。这是我的gradle文件的外观: apply plugin: 'java' // Creating a new sourceSet because you should move your integration tests to a separate directory. sourceSets { test { java.srcDirs = ['src/integration-tes

我试图通过gradle文件运行junit测试,但构建成功,但没有运行任何测试。这是我的gradle文件的外观:

apply plugin: 'java'

// Creating a new sourceSet because you should move your integration tests to a separate directory.
sourceSets {
    test {
            java.srcDirs = ['src/integration-test/java']
         }
            integrationTest {
            java.srcDirs = ['src/integration-test/java']        
            compileClasspath += main.output + test.output
            runtimeClasspath += main.output + test.output 
    }
}

configurations {
    integrationTestCompile.extendsFrom testCompile
    integrationTestRuntime.extendsFrom testRuntime
}



task integrationTest(type: Test, description: 'Runs the integration tests', group: 'Verification') {
            testClassesDir = sourceSets.integrationTest.output.classesDir
            classpath = sourceSets.integrationTest.runtimeClasspath
          }

运行task integrationTest后,生成将成功运行,但不会运行任何测试。有人知道为什么吗?

不知道您到底想做什么:将您的集成测试与完全移动测试类分离到其他文件夹,但我认为您需要包括测试配置的依赖项,如下所示:

configurations {
    integrationCompile.extendsFrom testCompile
    integrationRuntime.extendsFrom testRuntime
}
例如,集成测试配置:

sourceSets {
    test {
        java.srcDirs = ['src/test/java']
    }
    integration {
        java.srcDirs = ['src/integration/java']
        resources.srcDir 'src/integration/resources'
        compileClasspath += main.output + test.output
        runtimeClasspath += main.output + test.output
    }
}

configurations {
    integrationCompile.extendsFrom testCompile
    integrationRuntime.extendsFrom testRuntime
}

task integration(type: Test, group: 'Verification') {
    testClassesDir = sourceSets.integration.output.classesDir
    classpath = sourceSets.integration.runtimeClasspath
}
sourceSets {
    test {
        java.srcDirs = ['src/integration-test/java']
    }
}
如果您只想将测试移动到其他文件夹(
src/integration test/java
)中,并使用
test
任务运行测试,则可以使用以下配置:

sourceSets {
    test {
        java.srcDirs = ['src/test/java']
    }
    integration {
        java.srcDirs = ['src/integration/java']
        resources.srcDir 'src/integration/resources'
        compileClasspath += main.output + test.output
        runtimeClasspath += main.output + test.output
    }
}

configurations {
    integrationCompile.extendsFrom testCompile
    integrationRuntime.extendsFrom testRuntime
}

task integration(type: Test, group: 'Verification') {
    testClassesDir = sourceSets.integration.output.classesDir
    classpath = sourceSets.integration.runtimeClasspath
}
sourceSets {
    test {
        java.srcDirs = ['src/integration-test/java']
    }
}

您需要定义一个集成测试hi@alex谢谢您的回答。你能看看我的最新照片吗answer@Gaurav您确定位于“src/test/resources”中的integrationTest源代码是否需要从
java.srcDirs=['src/test/resources']
更改为
java.srcDirs=['src/test/java']
…我将其更改为resources.srcDirs,测试仍然没有运行否,它应该是
java.srcDirs
,但此变量的值需要与源所在文件夹的路径匹配。您有一个java.srcDirs在测试{}下,一个在集成测试{}。我的测试在src/integration-test/java文件夹下,所以我应该放什么,放在哪里?