我正在使用Maven在Visual Studio代码中开发Java项目,并且目前正在尝试编写测试类。 我已经将junit作为依赖项添加到我的pom.xml文件中:
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
当前,我的类如下所示:( Board类没有问题,并且getOne()返回1)
import org.junit.Test;
public class BoardTest {
private Board board = new Board();
@Test
public void testOne() {
assert(board.getOne() == 1);
}
}
最初,当我打开文件时,一切都很好,但是,一旦我保存,vscode就会生成2条错误消息,当我关闭并重新打开文件时,两条错误消息都会消失,但是在保存后再次出现:>
“导入的org.junit无法解析”
“测试无法解析为类型”
mvn install
,vscode甚至在项目的Java依赖项部分中列出了junit-4.12.jar。
运行mvn test
会产生预期的结果(测试通过),并且在mvn package
之后,从命令行运行项目的.jar文件可以毫无问题地运行该项目。每当我尝试从vscode运行项目时,即使当前不存在错误消息(即,在打开测试类之后但在保存之前),它都会通知我构建失败。如果我仍然告诉vscode继续进行,则该项目将再次正常运行。尝试从vscode运行测试的工作方式相同(我收到一条错误消息,但是在我告诉vscode继续进行后,测试通过正常。)
关于什么可能导致这种情况的任何想法?这是我正在使用的所有内容的当前版本:
JDK:openjdk v11.0.7
vscode:v1.45.1
maven:Apache Maven v3.6.3
答案 0 :(得分:3)
试试这个 VS Code 命令...
View -> Command Palette -> Java: Clean Java Language Server Workspace
此命令解决了我的类似问题,即 VS Code 无法识别 Gradle 项目的 .java 文件中的 import org.json.*
,即使 Gradle 可以成功构建和运行。此 VS Code 命令类似于 IntelliJ 的 File -> Invalidate Caches and Restart
,因为它强制刷新 IDE 的可用令牌和标识符缓存。
附注:
gradle build
或 mvn install
),以便将所需的包下载到您的本地计算机,以便 VS Code 可以找到它们。答案 1 :(得分:0)
在maven
设置中设置settings.xml
用户vscode
路径,运行上面的命令View
-> Command Palette
-> Java: Clean Java Language Server Workspace
并重启{ {1}} 帮我解决了这个问题。