Visual Studio 代码中的 JUnit

Posted

技术标签:

【中文标题】Visual Studio 代码中的 JUnit【英文标题】:JUnit in Visual Studio Code 【发布时间】:2019-11-02 14:47:06 【问题描述】:

我在 Visual Studio Code 中运行 JUnit 时遇到各种问题。在我创建的所有项目中,我都遇到了两个不同的主要问题。

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

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

有没有人遇到过类似的问题,或者是否有人对如何在没有 maven 或其他项目经理的情况下运行 java 项目有一些见解?我确信有办法让这项工作发挥作用,但我觉得我错过了显而易见的事情。

【问题讨论】:

【参考方案1】:

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

JDK 11 Language Support for Java by Red Hat Debugger for Java Java Test Runner。

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

拥有该文件夹后,创建一个 SomethingTest.java 文件,其中包含类似

import static org.junit.Assert.fail;

import org.junit.Test;

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


当您单击“运行测试”时,您应该会收到“尚未实施”的消息


如果您无法运行它并获得结果,可能至少有两个不同的原因

1.

无法解析导入的org.junit

要修复它,如果项目使用 Maven 来管理依赖项,请确保您已安装 Maven (How to install Maven in Windows 10?)。然后确保你运行了mvn installmvn package,如here 所述。

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 文件。只需确保您已安装以下插件:

来自 Microsoft 的 Java 扩展包 来自 Microsoft 的 Java 依赖项查看器 Microsoft 的 Java 调试器 来自 Microsoft 的 Java 测试运行程序 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

【讨论】:

【参考方案3】:

从版本 0.24 更新到 Java Test Runner 版本 0.24.2 后出现此错误我使用的是 0.64.1 版本的“Red Hat 对 Java 的语言支持”和“Java 调试器”。更新后,我在“测试”选项卡中看不到任何 junit 测试,也无法从 IDE 中启动它们。降级到 0.24 和 0.64.1 解决了这个问题。

【讨论】:

【参考方案4】:

1.确保您已安装 Java Test Runner 扩展

2.打开.classpath文件并更改

<classpathentry kind="src" path="src/test/java" />

<classpathentry kind="src" path="src/test/java" output="build/classes/test">
   <attributes>
      <attribute name="test" value="true" />
   </attributes>
</classpathentry>

更多关于Unit Test的信息

【讨论】:

以上是关于Visual Studio 代码中的 JUnit的主要内容,如果未能解决你的问题,请参考以下文章

Visual Studio 2010 中的代码自动清理

Visual Studio 不再显示代码中的错误

Visual Studio 中的代码度量计算

Visual Studio CODE中的折叠和展开代码[重复]

Visual Studio 代码中的 JUnit

Visual Studio:源代码控制中的Python虚拟环境