【发布时间】:2021-12-07 18:10:09
【问题描述】:
我正在 IntelliJ-IDEA 中做 JetBrains 的 Gradle 教程,并且在完成“Gradle 入门第 3 步。使用 Gradle 运行应用程序”之后,我被困在 Step 4。
教程说“点击编辑器左侧的 ▶”;没看到▶。相反,文件 (FizzBuzzTest.java) 有 11 个错误和 16 个警告,以“Cannot resolve symbol 'Assert'”开头。文件名带有红色波浪下划线。所以我尝试从 Gradle 的 test 任务中运行测试;这也返回了一条错误消息:“错误:包 org.junit 不存在”。
这是我FizzBuzz\src\test\java\com.gradle.tutorial\FizzBuzzTest.java的内容:
package com.gradle.tutorial;
import org.junit.Assert;
import org.junit.Test;
public class FizzBuzzTest {
@Test
public void FizzBuzzNormalNumbers() {
FizzBuzzProcessor fb = new FizzBuzzProcessor();
Assert.assertEquals("1", fb.convert(1));
Assert.assertEquals("2", fb.convert(2));
}
@Test
public void FizzBuzzThreeNumbers() {
FizzBuzzProcessor fb = new FizzBuzzProcessor();
Assert.assertEquals("Fizz", fb.convert(3));
}
@Test
public void FizzBuzzFiveNumbers() {
FizzBuzzProcessor fb = new FizzBuzzProcessor();
Assert.assertEquals("Buzz", fb.convert(5));
}
@Test
public void FizzBuzzThreeAndFiveNumbers() {
FizzBuzzProcessor fb = new FizzBuzzProcessor();
Assert.assertEquals("Buzz", fb.convert(5));
}
}
我在本教程中手动创建的唯一其他文件是...
FizzBuzz\src\main\java\com.gradle.tutorial\FizzBuzzProcessor.java
package com.gradle.tutorial;
public class FizzBuzzProcessor {
public static void main(String[] args) {
for (int i = 1; i <= 100; i++) {
System.out.println(convert(i));
}
}
public static String convert(int fizzBuzz) {
if (fizzBuzz % 15 == 0) {
return "FizzBuzz";
}
if (fizzBuzz % 3 == 0) {
return "Fizz";
}
if (fizzBuzz % 5 == 0) {
return "Buzz";
}
return String.valueOf(fizzBuzz);
}
}
和
FizzBuzz\build.gradle
plugins {
id 'java'
}
group 'org.example'
version '1.0-SNAPSHOT'
repositories {
mavenCentral()
}
dependencies {
testImplementation 'org.junit.jupiter:junit-jupiter-api:5.7.2'
testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.7.2'
}
test {
useJUnitPlatform()
}
这些都是教程中的(我只是复制粘贴它们。)
因为FizzBuzzTest.java没有▶,我无法运行测试来完成步骤4。我该怎么办?
(当按照“创建测试类”步骤创建FizzBuzzTest.java时,对话框自动选择JUnit5而不是教程建议的JUnit4。我试过JUnit4,但对话框说不可能找到了,所以我改回JUnit5。)
【问题讨论】:
-
阅读this thread,我认为我的问题是由
build.gradle中如何声明“junit”的依赖关系引起的。按照那里的一些答案,我尝试了junit:junit:5.7.2的格式,但它不起作用。此外,repositories的jcenter()会被删除,并带有已弃用的消息。所以我仍然没有解决方案,我无法运行测试类。 -
可以把项目上传到uploads.jetbrains.com查看吗?
-
您是否尝试过 Gradle 工具窗口中的 Reload 操作 - 是否成功完成?
标签: gradle intellij-idea