Java gradle集成测试不工作,单元测试运行两次

Java gradle集成测试不工作,单元测试运行两次,java,gradle,integration-testing,Java,Gradle,Integration Testing,我有这个根build.gradle repositories { jcenter() } subprojects { apply plugin: 'java' group 'me.someone' version '1.0.0' sourceCompatibility = 1.8 targetCompatibility = 1.8 repositories { jcenter() mavenCen

我有这个根build.gradle

repositories {
    jcenter()
}

subprojects  {

    apply plugin: 'java'

    group 'me.someone'
    version '1.0.0'

    sourceCompatibility = 1.8
    targetCompatibility = 1.8

    repositories {
        jcenter()
        mavenCentral()
    }

    dependencies {
        testImplementation 'junit:junit:4.12'
    }

}
plugins {
    id 'java-library'
    id 'eclipse'
    id "org.springframework.boot" version "2.0.1.RELEASE"
    id 'io.spring.dependency-management' version "1.0.5.RELEASE"
}

dependencies {
    compile('org.springframework.boot:spring-boot-starter-web')
    compile project(':foo-jar')

    testImplementation('org.springframework.boot:spring-boot-starter-test')
    testImplementation group: 'org.mockito', name: 'mockito-core', version: '2.18.3'

}

sourceSets {
    main {
        java {
            srcDir 'src/main/java'
        }
    }

    test {
        java.srcDir file('src/int/java')
    }

    itest {
        java {
            srcDir file('src/itest/java')
        }
        //resources.srcDir 'src/itest/resources'
    }
}


test {
    testLogging {
        showStandardStreams = true
        events "passed", "skipped", "failed"
        exceptionFormat = 'full'
    }   
}

task itest(type: Test) {
  testLogging {
        showStandardStreams = true
        events "passed", "skipped", "failed"
        exceptionFormat = 'full'
   }
   itest.mustRunAfter test
}

check.dependsOn itest

bootRun {
    main = 'me.someone.BarServiceApplication'
}
然后我有一个孩子build.gradle

repositories {
    jcenter()
}

subprojects  {

    apply plugin: 'java'

    group 'me.someone'
    version '1.0.0'

    sourceCompatibility = 1.8
    targetCompatibility = 1.8

    repositories {
        jcenter()
        mavenCentral()
    }

    dependencies {
        testImplementation 'junit:junit:4.12'
    }

}
plugins {
    id 'java-library'
    id 'eclipse'
    id "org.springframework.boot" version "2.0.1.RELEASE"
    id 'io.spring.dependency-management' version "1.0.5.RELEASE"
}

dependencies {
    compile('org.springframework.boot:spring-boot-starter-web')
    compile project(':foo-jar')

    testImplementation('org.springframework.boot:spring-boot-starter-test')
    testImplementation group: 'org.mockito', name: 'mockito-core', version: '2.18.3'

}

sourceSets {
    main {
        java {
            srcDir 'src/main/java'
        }
    }

    test {
        java.srcDir file('src/int/java')
    }

    itest {
        java {
            srcDir file('src/itest/java')
        }
        //resources.srcDir 'src/itest/resources'
    }
}


test {
    testLogging {
        showStandardStreams = true
        events "passed", "skipped", "failed"
        exceptionFormat = 'full'
    }   
}

task itest(type: Test) {
  testLogging {
        showStandardStreams = true
        events "passed", "skipped", "failed"
        exceptionFormat = 'full'
   }
   itest.mustRunAfter test
}

check.dependsOn itest

bootRun {
    main = 'me.someone.BarServiceApplication'
}

问题是单元测试运行了两次,而不是集成测试。为什么单元测试运行两次而不是集成测试?我的理解是,当我提供集成测试的源文件夹时,它也应该运行集成测试。

您的任务
itest
需要它,这就是为什么它当前运行两次单元测试的原因。它可能还需要一个

您应该查看上的Gradle文档以了解所有详细信息。

这可能有助于: