vscode代码扩展Java测试运行器既不显示消息也不显示堆栈跟踪

时间:2020-11-12 13:59:13

标签: visual-studio-code junit5

运行测试时,我想在Java测试报告窗口中查看Junit消息和堆栈跟踪。该窗口是名为Java Test Runner的vscode扩展的一部分。

运行测试时,我可以查看测试是否通过。结果在堆栈跟踪和消息正文中均为N / A(未获取)。

我正试图找出为什么我的Java测试运行器无法在Java测试报告中显示消息或stacktrace的原因。那就是我被困住的地方。

我尝试使用Java测试运行程序的settings.json文件中的"java.test.log.level": "verbose"运行测试。但我认为Java测试报告没有区别。此步骤基于rohinwork帖子:https://github.com/microsoft/vscode-java-test/issues/702#issuecomment-492992483

这是一个基本的Junit代码类,可以解决我的问题。

import static org.junit.jupiter.api.Assertions.assertTrue;


import org.junit.jupiter.api.Test;

/**
 * Unit test for simple App.
 */
public class AppTest 
{
    /**
     * Rigorous Test :-)
     */
    @Test
    public void shouldAnswerWithTrue()
    {
        assertTrue( true );
    }

}
  • 我的软件:我使用的是最新版本的vscode 1.51.1(在撰写本文时),最新的Java采用OpenJDK 14.0.2 + 12(推荐的最新版本)。撰写本文的时刻。
  • 我的设置:我正在Windows本地以便携式模式使用Visual Studio代码

1 个答案:

答案 0 :(得分:1)

正如您所说,测试报告仅用于显示失败的消息或堆栈跟踪。

鉴于您提供的示例代码,assertTrue( true );不会通过测试。由于测试通过,因此没有失败的消息/堆栈跟踪。这就是为什么您在测试报告中看到N/A的原因。

顺便说一句,如果您想查看自己程序的某些日志,则将它们打印在调试控制台中。例如,如果您的测试代码写为

@Test
void testMessage() throws {
    System.out.println("Hi");
}

您将在调试控制台中看到Hienter image description here

更新

正在考虑遵循Java调试器的执行位置的问题:https://github.com/microsoft/vscode-java-test/issues/1106