我刚开始读大学的计算机科学课程,我在使用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的最新版本。


当前回答

在我的例子中,IntelliJ因为一个奇怪的原因没有编译测试源。我只是修改了构建配置,并在Before launch部分中添加了maven目标干净的test-compile

其他回答

我的问题是文件夹名称。我把我的代码文件夹命名为Classes 2016/2017, IntelliJ不喜欢这样。只需删除斜杠(或路径中其他令人讨厌的字符),重新导入项目,就可以开始了!

在我的例子中,我把其他所有东西都放在了正确的位置,但我正在用kotlin开发一个java库。 我只是忘记应用插件:

apply plugin: 'kotlin-android'

现在它正按照预期工作。

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

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

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

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

我解决这个问题的方法是使用文件夹名称和路径。

由于某些原因,我的测试丢失了/java/文件夹,IntelliJ不喜欢这样。

所以从 . . /测试/ com/.。 来 . . /测试/ java / com/.。

这是好的

我在我的环境中也有同样的问题(MacOS)。我用的是IntelliJ 2016。我有一个Java库项目(gradle)。

我所做的是

从IntelliJ旧版本(如IntelliJ14)打开/导出项目。 这成功地发生了,我通过制作项目和运行测试用例来验证它。 然后通过IntelliJ 2016重新导入该项目。 在那之后,它工作得很好(构建和测试用例运行)。