intellij-idea JUnit5 Jupiter测试在IntelliJ中终止

lg40wkob  于 2022-11-01  发布在  其他
关注(0)|答案(5)|浏览(261)

当我运行我的单元测试时,它们立即被终止。但是没有显示日志。(只有“启动失败”和“进程结束,退出代码255”)。
测试以前工作过... JUnit 4没有给予我这个问题。测试在Maven中运行成功。
我使用JUnit5 Jupiter和IntelliJ IDEA 2020.1(终极版)。
有人有什么想法吗?

643ylb08

643ylb081#

我遇到的问题与此问题中描述的相同。解决此问题的方法是删除冲突的依赖项:

Remove similar entries ->
    <dependency>
        <groupId>org.junit.jupiter</groupId>
        <artifactId>junit-jupiter-engine</artifactId>
        <version>5.2.0</version>
    </dependency>

因为它已经包含在spring-boot-starter-test中了。删除显式依赖项将使SpringBoot能够为您处理依赖项之间的版本不兼容问题。

bq8i3lrv

bq8i3lrv2#

@Before@After不再存在;请改用@BeforeEach@AfterEach
@BeforeClass@AfterClass不再存在;请改用@BeforeAll@AfterAll
https://junit.org/junit5/docs/current/user-guide/#migrating-from-junit4-tips

jmp7cifd

jmp7cifd3#

我也有同样的问题。
唯一能解决这个问题的--我可以重现的--是这样的:**不要关闭()系统。

@Test
void failure()
    {
    System.out.close();
    }

让你所描述的事情发生。
每当我将System.out传递给函数(这些函数稍后将.close()它们的OutputStream)时,我都会用一个新的ByteArrayOutputStream()来代替它们。

idv4meu8

idv4meu84#

在经历了同样的情况之后,我进行了调试,结果发现测试完全执行,所有Assert都通过了。
我已经设法将问题缩小到System.out.println调用,它的输出不知何故被保留,直到所有的测试都完成,并最终在IDEA声称测试被中断之前被刷新。
从测试代码中删除对System.out的引用会使IDEA中的测试再次变为绿色。

yqlxgs2m

yqlxgs2m5#

对于我来说,使用@BeforeEach@AfterEach代替@BeforeAll@AfterAll是有效的

相关问题