我刚开始读大学的计算机科学课程,我在使用IntelliJ时遇到了一些问题。当我试图运行单元测试时,我得到了消息

Process finished with exit code 1
Class not found: "edu.macalester.comp124.hw0.AreaTest"Empty test suite.

我还在屏幕左侧看到一条标题为“未找到测试”的消息。我的测试代码如下:

package edu.macalester.comp124.hw0;


import org.junit.Test;
import static org.junit.Assert.*;

public class AreaTest {

    @Test
    public void testSquare() {
    assertEquals(Area.getSquareArea(3.0), 9.0, 0.001);
    }

    @Test
    public void testCircle() {
    assertEquals(Area.getCircleArea(3.0), 28.2743, 0.001);
    }
}

我的项目代码在这里:

package edu.macalester.comp124.hw0;

import java.lang.Math;
public class Area {

/**
 * Calculates the area of a square.
 * @param sideLength The length of the side of a square
 * @return The area
 */
public static double getSquareArea(double sideLength) {
    // Has been replaced by correct formula
    return sideLength * sideLength;
}

/**
 * Calculates the area of a circle.
 * @param radius The radius of the circle
 * @return The area
 */
public static double getCircleArea(double radius) {
    // Replaced by correct value
    return radius * 2 * Math.PI;
}

}

我怎样才能让我的测试正常工作?我使用的是IntelliJ IDEA CE的最新版本。


当前回答

通过在运行单元测试之前手动运行testClasses任务来解决。

其他回答

当我从Maven导入一些jar时,我遇到了同样的问题,随后导致了空测试套件错误。

在我的例子中,这是因为maven重置了模块文件。我通过清除默认配置解决了这个问题:

用shift-ctrl-alt-s快捷键打开项目结构

查看Modules > Sources并填充Sources包或测试package。

我也遇到了同样的问题(Android Studio 3.2 Canary 4),我尝试了其他答案中描述的大部分建议——没有任何成功。注意,这发生在我将文件从test文件夹移动到androidTest文件夹之后。它仍然在运行配置中显示为测试,而不是仪器测试。

我最终创建了一个新文件:

用不同的名称创建新的测试类。 从类中复制所有代码。 运行它。 删除旧类。 将新类重命名为所需的名称。

在我的情况下,有一个问题的测试名称:)。

如果名字是: dummyNameTest则在找到的地方不进行测试,但以防万一 一切正常

在安装了新版本的IntelliJ而IntelliJ插件还没有更新之后,可能会发生这种情况(对我来说至少有一次;)。

您可能需要手动执行IntelliJ帮助菜单中的“检查更新…”

您的测试是否需要Android设备(模拟器或硬件)? 如果是,它被称为“仪器测试”,位于“module-name/src/androidTest/java/”。 如果不是,它被称为“本地单元测试”,位于“module-name/src/test/java”

https://developer.android.com/training/testing/start/index.html

我得到了同样的错误,因为我已经编写了一个本地单元测试,但它被放置在用于测试的文件夹中。将本地单元测试移到“src/test/java”文件夹中可以解决这个问题。