Gradle项目的src / test / java类中未使用测试库

时间:2018-10-04 22:06:07

标签: java gradle spring-integration

我在处理Spring Integration的分支时遇到很多困难。有一个bug,涉及多个应用程序与Mongo同时使用此库。输入可能会导致同一文件处理两次而不是一次处理的问题。

我的计划是进行fork弹簧集成,创建一个客户端(例如称为x-client),该客户端可以使用fork在本地或在S3中使用Mongo来处理文件,从而充当spring-boot应用程序。功能。我会创建5-6个同时运行的x客户端实例来模拟错误。

因为x-client需要使用spring-integration的本地副本作为依赖项,所以我创建了一个顶层文件夹:spring-integration-lab,并将spring-integration分支放在一个子文件夹中,而clientx放在另一个子文件夹中:< / p>

springintegrationlab
|
|
  -- /spring-integration (fork)
|
 -- /inttest (aka clientx)
|
 -- build.gradle
|
 -- settings.gradle

问题是,在顶级目录中设置build.gradle很麻烦!其中很大一部分是我对gradle的无知,而spring-integration是一个多模块项目(MMP),而gradle不允许您创建引用另一个MMP的MMP。我的解决方案是创建一个顶级settings.gradle文件,以设置clientx和所有spring-integration项目。使两个项目的版本控制相匹配是很棘手的,但是现在我遇到了一个错误,即测试代码似乎被解释为常规代码,而testCompile依赖项却没有被提取,产生了:

  

错误:软件包org.mockito不存在

  

错误:包org.springframework.test.context.junit4不存在

基本上,没有任何testCompile或testRuntime依赖项被用于编译src / test / java代码。

build.gradle文件的第60行应否定发生错误(由于src / test / java是常规位置,我也不认为这是必要的)。

可能是什么问题?我几乎是从spring-integration中直接复制了build.gradle文件,并试图对其进行最小的更改。

在我的 build.gradle 中:

subprojects { subproject ->    
    apply plugin: 'java'
    ...

    sourceSets {
        test {
            resources {
                srcDirs = ['src/test/resources', 'src/test/java']
            }
        }
    }
    dependencies {
    testCompile "org.junit.jupiter:junit-jupiter-api:$junitJupiterVersion"
    testRuntime "org.junit.jupiter:junit-jupiter-engine:$junitJupiterVersion"
    testRuntime "org.junit.platform:junit-platform-launcher:$junitPlatformVersion"

    // To support JUnit 4 tests
    testRuntime "org.junit.vintage:junit-vintage-engine:$junitJupiterVersion"
    ...
    }
}

settings.gradle

// forked project
rootProject.name = 'springlab'

include ':spring-integration', ':inttest'
new File('spring-integration').eachDir { dir ->
    if (dir.name.startsWith('spring-integration-')) {
        include "spring-integration:${dir.name}"
    }
}

project(':inttest').projectDir = new File('inttest')

如果需要,您可以在以下位置看到带有错误的提交:

https://github.com/randeepbydesign/spring-integration-lab/commit/17d7670b237c89be2d104cda8430755258112b7f

请注意,您需要将spring-integration代码库克隆到此目录中,因为我不想将其包含在项目提交中。只需导航到/ spring-integration-lab并:

git clone https://github.com/spring-projects/spring-integration.git

0 个答案:

没有答案