问题标签 [java-test-fixtures]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1944 浏览

gradle - java-test-fixtures 插件是否与 Build and run using IntelliJ IDEA 设置不兼容?

看起来如果我在我的 java Gradle 项目中使用 java-test-fixtures 插件,当 IntelliJ 导入它时,IDE 将始终将src/testFixturesdir 标记为源文件夹(在模块设置,源选项卡中可见)。

然而,我build.gradletestFixturesApiortestFixturesImplementation配置中添加的任何依赖项都被导入到 IDEA 项目中,其范围为Test(在模块设置、依赖项选项卡中可见)。

因此,当我去构建我的项目时,使用项目构建并使用设置IntelliJ IDEA而不是默认设置运行Gradle(在设置 -> 构建、执行、部署 -> 构建工具 -> Gradle 中可见),构建器找不到deps 从那些 testFixtures 配置中,我得到一堆包不存在错误。

在使用向导设置新java-library项目gradle init并向其中添加“java-test-fixtures”插件后,可以轻松地重现此行为,然后将 dep 添加到测试夹具配置之一并将其导入到测试中的 java 文件中固定 SourceSet,然后切换 Build and run 设置并单击 build。

我正在使用 Gradle 6.0 和 IntelliJ 2019.3 BETA。

我尝试将 testFixtures 源目录明确标记为测试源文件夹:

但是 IDEA Gradle 导入似乎并不尊重这一点,我怀疑它无论如何都是错误的解决方案。

有没有办法让 java-test-fixtures 插件与 IDEA 构建器一起玩得很好,而不会将我的部门从testFixturesApi配置泄漏到api配置中?

更新

所以我的团队在 IntelliJ 注册表中启用了“gradle.settings.showDeprecatedSettings”选项,目前没有使用推荐的“每个 SourceSet 的模块”选项——而是每个项目都有一个模块。此问题仅适用于每个项目的模块,已弃用。请参阅:https ://youtrack.jetbrains.com/issue/IDEA-222172

0 投票
0 回答
672 浏览

unit-testing - 使用 java-test-fixtures 模块时如何从测试中测试声明为“内部”的 kotlin 函数

我尝试在我的 kotlin 项目中使用测试装置。不幸的是,我在工具链的一个组件中遇到了一个奇怪的问题,可能是一个错误(不确定是哪个)。

main通常,声明中的 Kotlin 函数internal可以test从同一包中的单元访问。有许多证据支持这种说法,尤其是Kotlin:使内部函数对单元测试可见

事实上,如果我们有src/main/kotlin/ main.kt

src/test/kotlin/SayHelloTest.kt

使用常规build.gradle.kts成功通过测试:

到目前为止,一切都很好。

但是在插件列表中添加了一行:

测试的构建因以下错误而中断:

我发现 Gradle 中提到了类似的问题 Kotlin Gradle 插件错误跟踪器。不幸的是,我无法从这些问题中提取解决方案。也许,这是一个不同的问题。

为了方便读者,我在 Github 上准备了一个小仓库来演示这个问题。

0 投票
1 回答
5229 浏览

java - Gradle 测试夹具插件和核心模块依赖项

我有一个使用 Gradle 版本 6.4 和 JDK 8 构建的项目。我正在尝试将 Gradle插件用于测试夹具( java-test-fixtures),但我对依赖项有一些问题。

根据上面链接的 Gradle 页面,该项目的结构应如下所示:

虽然该build.gradle.kts文件具有以下依赖项部分:

现在,在 IntelliJ(我正在使用的 IDE)中,testFixtures/java源文件夹中的类可以查看源文件夹中的类main/java。所以我可以添加新的 Java 类testFixtures/java,这些类依赖于main. 但是,我将无法从外部库导入依赖项com.my.external.project:1.0。当我尝试运行 Gradle 任务时,问题得到确认compileTestFixturesJava

我可以复制该dependencies部分中的条目;例如,我可以添加:

但这并不是我真正期望做的。特别是当我有几十个依赖项时。

我还可以在数组中定义依赖项并for-each在它们之上运行。不过,这不是最干净的解决方案。

是否有一个干净的解决方案允许testFixtures模块使用模块中声明的依赖项main

0 投票
0 回答
244 浏览

gradle - 带有 java-test-fixtures 的 Gradle 平台

我正在以集中方式为多项目 gradle 构建配置依赖项版本。这样它的工作原理:

这种方式不行。虽然配置阶段是好的:

...但compileTestFixturesKotlin任务失败。错误是:

java-test-fixtures插件有什么问题?或者可能是我的代码?

0 投票
0 回答
257 浏览

java - 带有自定义源和测试集的 Gradle java-test-fixtures 插件

所以我有一个多模块java项目每个模块的结构如下

现在,当我构建模块 A 时,生成的 -test-fixtures jar 是空的。我的最终目标是使用模块 A 中的测试助手类供模块 B 中的测试使用。

所以我的问题是测试装置是否适用于这种结构。

0 投票
1 回答
531 浏览

spring - Spring Framework 构建中使用了哪些测试装置,它们是如何使用的?

我阅读了spring源代码来学习单元测试。但对 testFixtures 的使用感到困惑? 在此处输入图像描述

0 投票
1 回答
638 浏览

android - 用于 Android 开发的 Gradle 测试夹具插件

尝试使用 gradle 6.6.1 的 gradle 测试夹具,使用以下插件集

产生错误

(类似的结果)按照文档的要求testFixturesImplementation添加插件:java-library

产生类似的东西

在 Ubuntu 20.04 上使用 kotlin 1.4(可能还有 kotest)为 Android 构建时,如何让 gradle testFixtures 工作?我的总体意图是使用自定义 kotest 生成器来创建在同一app项目下的多个测试源树之间共享的属性测试装置,即

共享测试助手以支持代码枯燥是有充分理由的;这种方法不是本次讨论的主题;我不是在寻求这方面的建议。这个问题的目标是一种开始testFixtures工作的方式,因为我显然不明白如何做到这一点,非常感谢您在这个方向上的帮助。如果上述描述故意简洁,但缺少必要的细节,我可以提供更多细节。

0 投票
1 回答
47 浏览

java - 如何在 Mockito 的方法中模拟“新”创建的对象

我有一个遗留代码,代码如下所示:

如何模拟new URL(endpoint).getConnection(). 在我得到一个 mocked 之前urlConnection,我无法继续对该方法进行进一步的陈述。

0 投票
0 回答
19 浏览

testing - 如何测试 java Jar 应用程序?

我正在做一个 java 项目“大学管理系统”,我必须对其进行测试。实施后,我从项目中导出了一个 jar 文件。现在,我需要测试这个项目。负载测试是不可能的,因为它是 java 类型的项目。所以,我需要对其进行图形用户测试。谁能解释一下测试这个应用程序的程序?先感谢您。