【问题标题】:What causes a junit warning org.junit.platform.launcher.core.EngineDiscoveryOrchestrator lambda$logTestDescriptorExclusionReasons$7是什么导致了 junit 警告 org.junit.platform.launcher.core.EngineDiscoveryOrchestrator lambda$logTestDescriptorExclusionReasons$7
【发布时间】:2021-09-28 14:27:49
【问题描述】:

我有一个基于 gradle 的 java 测试框架。

将 junit 更新到 5.7.2 后,每次测试都会出现此警告:

Jul 21, 2021 10:23:45 AM org.junit.platform.launcher.core.EngineDiscoveryOrchestrator lambda$logTestDescriptorExclusionReasons$7
INFO: 0 containers and 3 tests were Method or class mismatch

使用的junit依赖有:junit-jupiter-apijunit-jupiter-enginejunit-jupiter-params

可能是什么原因造成的,可能的解决方案是什么?

【问题讨论】:

  • 第一个猜测:不适合的 lib 版本。你能展示你的 build.gradle 文件吗?
  • 有同样的问题
  • 有同样的问题

标签: java gradle junit junit5


【解决方案1】:

如果您使用的是 Intellij,这可能会对您有所帮助。

首选项 > 构建、执行、部署 > 构建工具 > Gradle 将“构建并运行使用:”和“运行测试使用”设置为“Intellij IDEA”

【讨论】:

  • 已确认 .. 这修复了它。 IntelliJ 默认使用 Gradle(而不是自身)运行,这会导致警告。
【解决方案2】:

当您在 1 个类中有多个测试方法并且只执行其中一个时,会出现该警告。如果您运行该类中的所有测试方法,它不会出现。从警告信息来看,您在一个类中创建了 4 个 @Test 方法,并且只执行了其中一个。警告消息抱怨其他 3 种测试方法被排除在执行之外。如果您执行所有 4 种测试方法(通过运行整个类来完成),该消息将消失。换句话说,这是一个毫无意义的警告,你可以忽略它。

【讨论】:

    【解决方案3】:

    我认为潜在的解决方案是添加静态导入:

    import static org.mockito.Mockito.when;
    

    它解决了我的代码中的问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-08-28
      • 1970-01-01
      • 1970-01-01
      • 2016-09-24
      • 1970-01-01
      • 2016-12-25
      • 2015-04-13
      • 2014-04-26
      相关资源
      最近更新 更多