Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/331.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 未找到类:IntelliJ中的测试套件为空_Java_Unit Testing_Intellij Idea_Junit - Fatal编程技术网

Java 未找到类:IntelliJ中的测试套件为空

Java 未找到类:IntelliJ中的测试套件为空,java,unit-testing,intellij-idea,junit,Java,Unit Testing,Intellij Idea,Junit,我刚开始在我的大学里学习计算机科学,我对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.T

我刚开始在我的大学里学习计算机科学,我对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;
}

}
我的项目代码如下:

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的最新版本。

因此,我这里的问题是文件夹名称。我打电话给我的代码文件夹类2016/2017,IntelliJ不喜欢。只需删除斜杠(或路径中其他有问题的字符),重新导入项目,就可以开始了

如果您的测试文件夹已作为单独的模块导入(项目视图中的文件夹图标上显示一个小正方形),也可能发生这种情况。
通过在项目视图中选择测试文件夹并按DEL键删除模块。
然后开始测试。

如果弹出对话框显示错误消息,表示未选择任何模块,请从下拉列表中指定您的根模块。

当模块和/或项目jdk配置不正确时,也会发生这种情况。

使用IDEA 15.0.6时出现同样的问题,除了重命名测试类所在的包外,没有任何帮助。之后,我将其重命名为原来的名称,但它仍然有效,因此重命名操作可能清除了一些缓存。

有相同的消息。我必须删除运行/调试配置

在我的例子中,我以前将单元测试作为本地测试运行。之后,我将测试移到androidTest包中,并尝试再次运行它。Android Studio记住了上一次运行的配置,因此它尝试将其作为本地单元测试再次运行,这产生了相同的错误

在删除配置并再次运行测试之后,它生成了一个新的配置并开始工作


我也有同样的问题。在我的例子中,我在主文件夹外的包/文件夹中有一些测试类。但是当我检查运行配置时,它总是试图在主文件夹内查找类(而不是在主文件夹外查找我的包)。 因此,如果是这种情况,您必须将包移动到运行配置所指向的位置。
或者更改运行配置以指向您的包。

在启动新的IntelliJ项目后,我遇到了类似的问题。我发现模块的“模块编译输出路径”没有正确指定。当我将模块“编译输出路径”中的路径分配到正确的位置时,问题就解决了。编译输出路径在项目设置中指定。在“模块”下,选择所涉及的模块,然后选择“路径”选项卡

“项目设置|模块”对话框中的“路径”选项卡


…我将编译器输出发送到父项目文件夹中名为“output”的文件夹。

您的测试是否需要Android设备(模拟器或硬件)?
如果是这样,它被称为“插装测试”,并驻留在“module name/src/androidTest/java/”中
如果不是,则称为“本地单元测试”,并驻留在“模块名/src/test/java”中


我得到了相同的错误,因为我编写了一个本地单元测试,但它被放在了用于检测测试的文件夹中。将本地单元测试移到“src/test/java”文件夹为我修复了它。

得到了相同的错误。我的设备未连接到android studio。当我连接到工作室时。它起作用了。这就解决了我的问题。

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

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

  • 使用shift-ctrl-alt-s快捷键打开项目结构
  • 查看模块>源代码并填写源代码包或测试包

  • 删除
    .idea
    并重新导入SBT项目为我解决了这个问题。

    可能是因为文件夹未设置为测试源,这可以通过模块设置>模块来完成。

    重新导入项目或模块可以解决这个问题。 我在开发时通过重命名包名来解决这个问题。但是输出路径测试输出路径是旧路径。因此intellij无法从旧路径中找到类。 因此,最简单的方法是纠正输出路径和测试输出路径


    对我来说,这个项目是在项目之外编译的。我只是改变了道路。 用于更改路径(我正在使用mac)

    • 转到文件-->项目结构
    • 转到左侧的模块
    • 选择路径,选择单选按钮(使用模块编译输出路径)
    • 提供项目内部的输出路径和测试输出路径
    • 取消选择排除输出路径
    • 转到文件-->单击使缓存无效并重新启动

    在我的例子中,通过进入我的
    build.gradle
    并更改

    dependencies {
        testImplementation 'junit:junit:4.12'
    }
    


    在我的例子中,IntelliJ没有编译测试源代码是因为一个奇怪的原因。我只是修改了构建配置,并在启动前的
    部分中添加了maven目标
    clean test compile

    File -> Invalidate Caches/Restart...
    

    在Android Studio 3.0+中,有时UI测试被解释为单元测试,而不要求选择目标部署。您可以转到编辑配置并将其标记为集成测试,它将开始工作

    我也遇到了同样的问题。我重建了这个项目,它帮助了我

    转到构建-->重建项目

    之后,如果您使用的是Maven工具,我建议使用option重新导入所有Maven项目


    如果没有帮助,请尝试其他可能的解决方案:

    • 转到文件-->使缓存无效/重新启动-->使缓存无效并重新启动
    apply plugin: 'kotlin-android'