visual-studio-code - 使用“Test Runner for Java”扩展运行 VS Code(无 Maven)测试
问题描述
我正在尝试使用没有 Maven 的 Visual Studio 代码制作 JUnit5 的最小工作示例。原因是我正在尝试为一年级学生做一个快速演示,而我没有时间解释 Maven(它将成为以后课程的主题)。
我的 VS Code 工作区具有这种结构(我在 Linux 上,所以正斜杠是正常的):
settings.json 文件包含:
{
"java.project.referencedLibraries": [
"demojunit/junit-platform-console-standalone-1.8.1.jar"
]
}
DemoJUnit.java 包含:
package demojunit;
import java.util.Scanner;
public class DemoJUnit {
public static void main(String[] args) {
Scanner keyboard = new Scanner(System.in);
int integer = -1;
do {
System.out.print("Enter an integer between 1 and 20 : ");
if (keyboard.hasNextInt())
integer = keyboard.nextInt();
keyboard.nextLine();
} while ((integer < 1) || (integer > 20));
keyboard.close();
long result = computeFactorial(integer);
System.out.println("The factorial " + integer + "! gives " + result);
}
public static long computeFactorial(int number) {
if (number < 1)
return -1;
if (number > 20)
return -2;
long factorial = 1;
for (int i = 2; i <= number; i++) {
factorial = factorial * i;
}
return factorial;
}
}
DemoJUnitTest.java 包含:
package demojunit;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
public class DemoJUnitTest {
@Test
public static void computeFactorial_CleanTest() {
long expected_value = 120;
long real_value = DemoJUnit.computeFactorial(5);
Assertions.assertEquals(expected_value, real_value);
}
@Test public static void computeFactorial_DirtyTest() {
long expected_value = -1;
long real_value = DemoJUnit.computeFactorial(0);
Assertions.assertEquals(expected_value, real_value);
}
}
settings.json 似乎可以工作,因为导入和 @Test 在 VS Code 中没有标记为错误。
正如您在文件夹图像中看到的,我下载了最新的 JUnit5 jar 文件,它在从命令行运行时可以工作:
但是,从命令行运行并不方便,所以我安装了“Test Runner for Java”扩展。
问题是在运行测试时,有些东西失败了,我没有任何错误消息,也没有任何迹象表明出了什么问题。我将扩展程序的设置更改为,verbose
但在终端、调试控制台或其他任何地方仍然没有收到错误消息。
我得到的是:
知道为什么扩展失败(并且没有给出任何关于失败原因的指示)吗?
解决方案
推荐阅读
- bash - 如何获得 md5 输出但制表符分隔?
- java - 如何使用java在txt中添加新行,并且没有空格
- javascript - 有没有办法加入数组,但有编号?
- qt - qml - 引用顶部。
不能从 ListView 工作? - javascript - 使用 keydown 短暂发生更改,然后消失
- python - AttributeError:写入文件时“NoneType”对象没有属性“get”
- javascript - form.io 如何在模糊上触发自定义验证?
- ruby-on-rails - 运行 graphQL 突变的正确方法是什么?
- python - 400 错误请求:无法解码 JSON 对象;PUT 请求(Flask)
- java - 我想按顺序打印薪水最后一个称为安排的函数必须完成这项工作,而不是代码正在工作