首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >junit-bom和junit平台的目的是什么,我应该将它们包含在gradle依赖项中吗?

junit-bom和junit平台的目的是什么,我应该将它们包含在gradle依赖项中吗?
EN

Stack Overflow用户
提问于 2021-04-30 04:57:36
回答 1查看 3.7K关注 0票数 11

我在读Junit 5用户指南。它将带我到一个JUnit 5木星级样品,这是在Gradle中使用Junit 5的一个最简单的例子。在build.gradle文件中,有两个依赖项,junit-jupiterjunit-bom。在test任务中,它还调用useJUnitPlatform()函数。

代码语言:javascript
复制
plugins {
    id 'java'
}

repositories {
    mavenCentral()
}

dependencies {
    testImplementation(platform('org.junit:junit-bom:5.7.1'))
    testImplementation('org.junit.jupiter:junit-jupiter')
}

test {
    useJUnitPlatform()
    testLogging {
        events "passed", "skipped", "failed"
    }
}

据我所知,junit-jupiter是一个聚集的工件,它可以提取以下三个工件,

  1. junit-jupiter(编译依赖项)
  2. junit-木星引擎(运行时依赖性)
  3. junit.木星-params(用于参数化测试)

所以我想junit-jupiter已经足够在我的项目中运行JUnit木星了(如果我错了,请纠正我)。我想知道什么是junit-bom,,,,,,谢谢大家:)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-04-30 05:17:08

junit-bom是JUnit的材料清单(BOM)。当包含此BOM时,它将确保为您对齐和管理所有JUnit 5依赖版本。您可以作为这篇文章的一部分找到有关BOM概念的更多信息。

这就是为什么在导入junit-jupiter时不必指定版本的原因

代码语言:javascript
复制
// with the BOM, no version needed
testImplementation('org.junit.jupiter:junit-jupiter')

// when using no BOM, version info is needed
testImplementation('org.junit.jupiter:junit-jupiter:5.7.1')

如果您从同一个项目导入多个依赖项,您将看到BOM的好处。当只使用一个依赖项时,它可能看起来是多余的:

代码语言:javascript
复制
// only define the version at a central place, that's nice
testImplementation(platform('org.junit:junit-bom:5.7.1'))
testImplementation('org.junit.jupiter:junit-jupiter')
testImplementation('org.junit.vintage:junit-vintage-engine') // when you want to also run JUnit 3 + 4 tests

useJUnitPlatform()指示分级测试任务使用JUnit平台执行测试。这是必需的。

在您的示例中,您有一个最低限度的工作设置,可以在Gradle项目中使用JUnit 5。您可以做的是删除junit-bom并自己添加版本信息:

代码语言:javascript
复制
plugins {
    id 'java'
}

repositories {
    mavenCentral()
}

dependencies {
    testImplementation('org.junit.jupiter:junit-jupiter:5.7.1')
}

test {
    useJUnitPlatform()
    testLogging {
        events "passed", "skipped", "failed"
    }
}

但我会坚持JUnit团队的建议,以及他们在GitHub上的示例项目。

票数 12
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67328406

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档