相关疑难解决方法(0)

Gradle Test Dependency

我有两个项目,项目A和项目B.两者都是用groovy编写的,并使用gradle作为他们的构建系统.

项目A需要项目B.这适用于编译和测试代码.

如何配置项目A的测试类可以访问项目B的测试类?

testing automated-tests build dependency-management gradle

73
推荐指数
6
解决办法
4万
查看次数

使用Gradle的Spring Boot多模块项目无法构建

我正在开发一个包含多个模块的Spring Boot应用程序,我们正在使用Gradle来构建它.不幸的是我无法正确使用Gradle配置.

项目结构如下:

parent
  |
  + build.gradle
  |
  + settings.gradle
  |
  + core
  |   |
  |   + build.gradle
  | 
  + apis
  |   |
  |   + build.gradle
  |
  + services
  |   |
  |   + build.gradle
  | 
  + data
  |   |
  |   + build.gradle
Run Code Online (Sandbox Code Playgroud)

当我尝试构建项目时,我遇到编译错误,比如说error: cannot find symbol,不会导入服务中使用的数据类.我认为所有模块之间都是如此.

我的父build.gradle看起来像这样:

buildscript {
    ext {
        springBootVersion = '2.0.0.BUILD-SNAPSHOT'
    }
    repositories {
        mavenCentral()
        maven { url "https://repo.spring.io/snapshot" }
        maven { url "https://repo.spring.io/milestone" }
    }
    dependencies {
        classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
    }
}

apply plugin: 'eclipse'
apply …
Run Code Online (Sandbox Code Playgroud)

java spring gradle build.gradle spring-boot

18
推荐指数
4
解决办法
1万
查看次数

Android多模块测试依赖

使用Android Studio 3.0/android_gradle_version ='3.0.1'/ gradle-4.5

假设我有两个android模块

module-base
module-a
Run Code Online (Sandbox Code Playgroud)

当我想从module-a中的module-base访问源代码时,我只需要在我的module-a.gradle中编写它

dependencies {
implementation project(path: ':module-base')
}
Run Code Online (Sandbox Code Playgroud)

但是,如果我想在模块-a的测试中从模块库访问测试源呢? 这里没有像上面那样工作的方法

dependencies {
testImplementation project(path: ':module-base')
}
Run Code Online (Sandbox Code Playgroud)

我找到了很多建议(几年前)

    compileTestJava.dependsOn tasks.getByPath(':module-base:testClasses')
    testCompile files(project(':module-base').sourceSets.test.output.classesDir)
Run Code Online (Sandbox Code Playgroud)

要么 testCompile project(':module-base).sourceSets.test.classes

但没有人提到过.从编译器的角度来看总是有问题: - /

你能帮助我如何在两个模块之间创建Android测试代码依赖吗?

unit-testing android-studio build.gradle android-gradle-plugin gradle-plugin

13
推荐指数
2
解决办法
1725
查看次数

如何跨Gradle项目共享测试类?

我正在使用Gradle来构建和测试我的项目.我有两个项目:

ProjA  contains      src\test\java\BaseTest.java       
ProjB  contains      src\test\java\MyTest.java

MyTest extends BaseTest
Run Code Online (Sandbox Code Playgroud)

当我跑步时ProjB.gradle,如何让它BaseTest从ProjA 看到这个课程?

我尝试添加:

dependencies {
  testCompile project('ProjA') 
}
Run Code Online (Sandbox Code Playgroud)

但它没有用.

java gradle

9
推荐指数
1
解决办法
3493
查看次数

其他项目的gradle pull测试罐

我在maven中有一个多项目设置并试图切换到gradle.我试图弄清楚如何让一个项目的测试依赖包括另一个项目的测试jar.现在我在ProjectA中有以下内容:

packageTests = task packageTests(type: Jar) {
  classifier = 'tests'
  from sourceSets.test.output
}

tasks.getByPath(":ProjectA:jar").dependsOn(packageTests)
Run Code Online (Sandbox Code Playgroud)

在ProjectB我有:

testCompile project(path: ':ProjectA', classifier: 'tests')
Run Code Online (Sandbox Code Playgroud)

我看到我的测试无法编译.看起来他们缺少测试jar中定义的类.当我检查构建目录时,我看到ProjectA-0.1.56-SNAPSHOT-tests.jar存在.

在maven中,我有以下ProjectA:

  <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-jar-plugin</artifactId>
    <version>2.4</version>
    <executions>
      <execution>
        <phase>package</phase>
        <goals>
          <goal>test-jar</goal>
        </goals>
      </execution>
    </executions>
  </plugin>
Run Code Online (Sandbox Code Playgroud)

这对于ProjectB来说:

<!-- Testing -->
<dependency>
  <groupId>com.example</groupId>
  <artifactId>ProjectA</artifactId>
  <version>0.1.56-SNAPSHOT</version>
  <type>test-jar</type>
</dependency>
Run Code Online (Sandbox Code Playgroud)

我怎样才能让它像maven一样工作?

gradle maven

6
推荐指数
1
解决办法
705
查看次数

Gradle Multi Project-在模块之间共享测试代码

ProjectA包含一个抽象的单元测试,TestA

ProjectB有一个名为的测试TestB,需要从扩展到TestA,才能满足此特定实现的测试要求。

我加入build.gradle的配置文件ProjectBProjectA作为一个依赖编译测试:

testCompile project(':ProjectA')
Run Code Online (Sandbox Code Playgroud)

另外,作为依赖项编译:

compile project(':ProjectA')
Run Code Online (Sandbox Code Playgroud)

虽然我可以从扩展TestA,但是当我尝试运行时却TestB遇到了下一个错误:

error: cannot find symbol class TestA
Run Code Online (Sandbox Code Playgroud)

那么,有什么方法可以在模块之间共享测试代码?

谢谢。

java android gradle

6
推荐指数
1
解决办法
2068
查看次数