Visual Studio Code 中的 JUnit

2022-09-03 07:48:24

我在Visual Studio Code中运行JUnit时遇到了各种各样的麻烦。我有两个主要问题,在我创建的每个项目中都不共存。

问题 1:创建并运行 Java 项目后,如果我尝试添加 JUnit 测试类,程序找不到该类/测试。我应该看到一个运行或调试测试的选项,但没有弹出这样的选项。此外,当我单击测试资源管理器选项卡时,我没有看到列出的测试类,但它位于项目文件夹中。

问题 2:我已经成功地将一个首先在eclipse中开发的项目导入到VS代码中。这并不理想。执行此操作时,我遇到的问题是VS Code在JUnit导入方面遇到了问题。有时它无法识别注释@Test,并且会尝试通过在程序中导入我来解决导入问题,(例如:使用assertSame方法时,我必须编写:org.junit.Assert.assertEquals("stringName", v1.getName);

有没有人遇到过类似的问题,或者有没有人对如何在没有专家或其他项目经理的情况下运行Java项目有一些见解?我相信有一种方法可以做到这一点,但我觉得我错过了显而易见的东西。


答案 1

要在Visual Studio Code中进行Java单元测试,我建议您具备以下要求

一旦你有了它和新创建的Java项目,你应该知道总是将生产代码与测试代码分开。为此,只需在与 相同的位置创建一个文件夹。testsrc

拥有该文件夹后,创建一个包含类似内容的文件SomethingTest.java

import static org.junit.Assert.fail;

import org.junit.Test;

public class NgramTest {
    
    @Test 
    void test() {
        fail("Not yet implemented");
    }

}

Run Test JUnit

单击“运行测试”时,应会收到“尚未实现”消息

JUnit result after running


如果您无法运行该操作并获得结果,则至少可能来自两个不同的原因

1.

无法解析导入 org.junit

要解决此问题,如果项目使用 Maven 来管理依赖项,请确保已安装 Maven(如何在 Windows 10 中安装 Maven?)。然后确保运行 或 ,如此所述。mvn installmvn package

2.

SomethingTest.java不在项目PROJECT_NAME的类路径上,只报告语法错误

若要修复此问题,请将该文件夹添加到项目根目录中存在的 .classpath 中

<classpathentry kind="src" output="target/test-classes" path="test">
    <attributes>
        <attribute name="optional" value="true"/>
        <attribute name="maven.pomderived" value="true"/>
        <attribute name="test" value="true"/>
    </attributes>
</classpathentry>

答案 2

您根本不需要 .classpath 文件。只需确保您安装了以下插件:

  • 来自微软的Java扩展包
  • 来自 Microsoft 的 Java Dependency Viewer
  • 来自 Microsoft 的 Debugger for Java
  • 来自微软的Java Test Runner
  • Red Hat 对 Java(TM) 的语言支持

在此之后,请查看以下脚本,该脚本创建正确的文件夹结构并正确放置 junit jar:https://github.com/siddharthbarman/Powershell/blob/master/prepare_java_project.ps1

这方面的博客文章在这里:https://sbytestream.pythonanywhere.com/blog/VSCode-Java-JUnit


推荐