用groovy分离单元和积分测试

时间:2017-04-04 21:13:20

标签: unit-testing gradle groovy integration-testing

我试图关注https://selimober.com/gradle_unit_integration/

使用略有不同的文件结构:

title_Ad_editText

运行" gradle集成" - 编译运行正常,类文件出现在:

src/test/integration/groovy
src/test/unit/groovy
src/test/resources

但测试本身永远不会运行。我想我错过了依赖关系中的一个部分或者与运行测试的集成链接,但无法弄清楚我错过了什么。除非我必须更改文件结构并在任务名称中使用Test,例如" integrationTest"

我尝试添加:

build/classes/integration
build/classes/main/

check.dependsOn integration  

integrationCompile sourceSets.main.output
integrationCompile configurations.testCompile
integrationCompile sourceSets.test.output
integrationRuntime configurations.testRuntime

但要么没有改变任何东西,要么给我错误,如:

task integ(type: Test) {  
    testClassesDir = sourceSets.integ.output.classesDir
    classpath = sourceSets.integ.runtimeClasspath
}

感谢您的帮助。

我的build.gradle文件:

Could not find method integrationCompile() for arguments [main classes] on object of type org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandler.

2 个答案:

答案 0 :(得分:1)

问题出在你的任务中:

task unit(type: Test) {
    include '**/unit/**'
}

task integration(type: Test) {
    include '**/integration/**'
}

您不需要,文件夹由源集定义。 include包括导致测试仅限于其包中包含“unit”的类。 “融合”。

删除它,你的测试应该运行。

BTW你不需要这些也不包括:

sourceSets {
    unit {
        groovy {
            exclude '**/integration/**'
        }
    }
}

答案 1 :(得分:0)

在源集和配置之后放置依赖项。为我工作。