IntelliJ - 启动失败:0 通过,1 未启动

问题描述 投票:0回答:12

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

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

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

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

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

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

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

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

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

Eclipse 一切正常。

知道是什么原因造成的吗?

java unit-testing ide intellij-idea
12个回答
15
投票

我的问题是 Failed to start: 1, passed: 0 。我使用 Spring Boot 2.4.0 和 Junit5 来测试控制器类。我刚刚注释掉了 junit-jupiter-engine 依赖项中的版本标签。然后它起作用了。真奇怪。它可能对某人有帮助。


7
投票

我得到了同样的错误。发送给

System.out
的东西很奇怪,使 IntellJ IDEA 测试“未开始”。


2
投票

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


2
投票

当您将 scalamock 的

MockFactory
与 scalatest 的
AsyncFlatSpec
混合使用时,scala 代码有时会发生类似的错误。

所以,一定要像下面那样使用

AsyncMockFactory

class ExampleSpec extends AsyncFlatSpec with AsyncMockFactory

1
投票

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

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


0
投票

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


0
投票

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

@Parameterized.Parameters
public static Collection data()

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


0
投票

我有同样的问题。无论

scenarios
的数量是多少,它都在
scenario
阶段显示了1个额外的
NOT STARTED
。我正在使用 Scenario Outline 来运行测试,并评论了
Example tables
.

中的行

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


0
投票

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

弄清楚这是由于尝试打印到已经关闭的 PrintWriter 引起的。


0
投票

在我的例子中,我试图 mock 一个具有 public static 方法 的类。当一切都从静态上下文中解放出来时,问题就解决了。


0
投票

在尝试测试调用

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 根据需要启动。

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


0
投票

在我的例子中,我将 AsyncMockFactory 与 AnyWordSpecLike 混合使用,这导致我的所有测试都被静默跳过。更改为 AsyncWordSpecLike 解决了它。

显然有一个修复程序,如果你不正确地混合它们会导致代码无法编译,但截至今天它还没有进入 ScalaMock 版本:

https://github.com/paulbutcher/ScalaMock/pull/451

© www.soinside.com 2019 - 2024. All rights reserved.