【问题标题】:IntelliJ - Failed to start: 0 passed, 1 not startedIntelliJ - 启动失败:0 已通过,1 未启动
【发布时间】:2012-06-25 08:20:51
【问题描述】:

第一次玩 IntelliJ IDEA 社区版,我是第一次使用它,所以如果我遗漏了什么,请见谅。

我运行了一堆单元测试,但是,在 IntelliJ 中运行它们时(使用开箱即用的标准设置),我在控制台中间歇性地收到以下错误:

03:14:17 启动失败:58 次通过,1 次未启动

我在网上搜索过,但无济于事。如果我只运行失败的测试,它可能会或可能不会打印出类似的错误:

03:19:54 启动失败:0 次通过,1 次未启动

如果我继续尝试,最终它会起作用并告诉我我所有的测试都已通过。

图像不是感叹号的错误,它是一个不同的错误图标(),我不认识。事件日志窗口中的错误显示为红色文本。

它似乎总是只发生在一个测试中,并且对于任何给定的测试集总是相同的测试。 IE。在不同的项目中,也会出现相同的问题,但针对不同的测试(但在每个项目或一组测试中总是相同的问题)。

还有一点需要注意的是,这种情况只发生在调试的时候,而不是运行的时候,所以可能与连接调试器有关?

在 Eclipse 中一切正常。

有什么可能导致这种情况的想法吗?

【问题讨论】:

  • 这个测试是标记为红色,如失败,还是显示不同?
  • 感谢您的回复@sebi。我已更新问题以包含图片。
  • 看起来像个bug,你可以在youtrack.jetbrains.net/issues/IDEA提交,并附上示例项目和重现的步骤。
  • 感谢@CrazyCoder。你是对的,它看起来确实像一个错误。我似乎无法重现一个简单的示例项目来模拟这个问题。不幸的是,我也无法发布我的整个项目源代码,所以有点麻烦。我会发布我能发布的所有信息。
  • 同样的故事。 “启动失败:0 次通过,1 次未启动”。想法 17.3.4.

标签: java unit-testing ide intellij-idea


【解决方案1】:

看起来这可能是 IntelliJ 上的一个错误,它已与他们一起提出。

【讨论】:

  • 知道是否修复了吗?
  • 如果是bug,现在还存在。这个问题持续的时间让我认为这不是一个错误
【解决方案2】:

我遇到了同样的错误。发送到 System.out 的东西很奇怪,导致 IntellJ IDEA 测试“未开始”。

【讨论】:

  • 有同样的问题,在我的测试使用和调用的代码的某些部分是 System.out.printf,所以要小心。
【解决方案3】:

我遇到了这个问题(在 Android Studio 中,但它是一个定制的 IntelliJ),原因是当我使用 CTRL-SHIFT-F10 运行测试时光标在哪里。

@Parameterized.Parameters
public static Collection data()

一旦我将光标移动到测试方法中或不在任何方法中,它就起作用了。

【讨论】:

    【解决方案4】:

    我遇到了同样的问题。无论scenarios 的数量是多少,它都在NOT STARTED 阶段显示了1 个额外的scenario。我使用 Scenario Outline 运行测试,并在 Example tables 中注释了行。

    我后来发现评论整个示例表(我不想运行)解决了这个问题,而不是评论每一行。

    【讨论】:

      【解决方案5】:

      我为 IntelliJ IDEA 创建了一个ticket,如果你仍然遇到这个问题,你可以投票给它。

      【讨论】:

        【解决方案6】:

        我在 IntelliJ IDEA 2017.2.1 中遇到了同样的问题,这让我有点崩溃。测试用例运行时没有任何可识别的错误或违规行为,但最终 JUnit 声称该用例未启动。

        发现这是由于尝试打印到已经关闭的 PrintWriter 引起的。

        【讨论】:

          【解决方案7】:

          在我的情况下,问题出在 pom.xml 中。 我从完整的工作应用程序转移到 spring-boot 实现,并且只导入了 spring-boot-starter-test 依赖项进行测试。

          我通过从 spring-boot-starter-test 中排除 junit 部分并在单独的块中添加最新版本的 junit 依赖项来解决。

          【讨论】:

            【解决方案8】:

            对我来说问题是 启动失败:1,通过:0。我正在使用带有 Junit5 的 Spring Boot 2.4.0 来测试控制器类。我刚刚注释掉了 junit-jupiter-engine 依赖项中的版本标记。然后它起作用了。真的很奇怪。它可能对某人有帮助。

            【讨论】:

            • 立即为我修复了它。花了一天时间试图弄清楚这一点。一切都在告诉我向 pom 添加不同的项目,但没有一个起作用。只需删除版本标签就可以了。这在几个月前有效,但随机停止了。某些版本的 jupiter 似乎新的依赖项失败了
            • 我的 pom 中有多个版本的 junit-jupiter-engine 导致了这种情况。
            【解决方案9】:

            在我的例子中,我试图模拟一个具有公共静态方法的类。当一切都脱离静态上下文时,问题就解决了。

            【讨论】:

              【解决方案10】:

              当您将 sclamock 的 MockFactory 与 scalatest 的 AsyncFlatSpec 混合时,scala 代码有时会发生类似的错误。

              所以,请务必使用AsyncMockFactory,如下所示。

              class ExampleSpec extends AsyncFlatSpec with AsyncMockFactory
              

              【讨论】:

              • 哦,伙计,我为此浪费了 3 个小时,谢谢你好先生 :)
              【解决方案11】:

              在尝试测试名为 System.exit(1) 的代码时,我没有开始测试。 IntelliJ 不会开始我的测试,直到我删除了这样的退出行为:

              一开始我将代码中的所有直接行替换为

              System.exit(1)
              

              onFailure.run();
              

              unnable onFailure = () -> System.exit(1);
              

              在代码本身中。在测试代​​码中,我将 Runnable 替换为可测试的模拟 Runnable

                Runnable mockOnFailure =
                    () -> {
                      throw new CustomError(
                          "Some descriptive message here.");
                    };
              

              而且比我预期的错误会像这样抛出(使用 AssertJ 进行漂亮的断言语句)

              import static org.assertj.core.api.Assertions.assertThat;
              import static org.assertj.core.api.Assertions.assertThatExceptionOfType;
              
              
                assertThatExceptionOfType(CustomError.class).isThrownBy(
                    () -> {
                      callingCodeThatCallsOnFailure();
                    }
                );
              

              现在所有测试都由 IDE 根据需要开始。

              如果对您有帮助,请随时重复使用。我不主张任何这些代码行的任何所有权或版权。

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 2014-06-03
                • 1970-01-01
                • 1970-01-01
                • 2017-05-28
                • 2013-02-06
                • 1970-01-01
                • 1970-01-01
                • 2022-08-03
                相关资源
                最近更新 更多