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

vscode code extension java test runner neither shows a message nor a stack trace

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

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

我试图找出为什么我的 java 测试 运行ner 无法在 java 测试报告中显示消息或堆栈跟踪。这就是我卡住的地方。

我已经尝试 运行 在 java 测试 运行 的 settings.json 文件中使用 "java.test.log.level": "verbose" 进行测试。但是我看java测试报告没有区别。此步骤基于 post 的 rohinwork:https://github.com/microsoft/vscode-java-test/issues/702#issuecomment-492992483

这是一个基本的 Junit 代码 class 来解决我的问题。

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 );
    }

}

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

鉴于您提供的示例代码,assertTrue( true ); 不会通过测试。由于测试通过,所以没有失败的message/stack痕迹。这就是为什么您在测试报告中看到 N/A

顺便说一句,如果你想查看你自己程序的一些日志,它们会打印在调试控制台中。比如你的测试代码写成

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

您将在调试控制台中看到 Hi

更新

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