首页 文章

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

提问于
浏览
136

我刚刚在我的大学开始计算机科学课程,而且我在使用IntelliJ时遇到了一些问题 . 当我尝试运行单元测试时,我收到了消息

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

我还在屏幕左侧看到一条 Headers 为“未找到测试”的消息 . 我的测试代码在这里:

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 .

30 回答

  • 1

    在我的情况下,我把所有其他东西放在了正确的位置,但我正在使用 kotlin 进行 java library . 我只是忘了申请插件:

    apply plugin: 'kotlin-android'
    

    而现在它正在按预期工作 .

  • 4

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

  • 7

    所以,我的问题是文件夹名称 . 我已经调用了我的代码文件夹Classes 2016/2017,这是IntelliJ不喜欢的 . 只需删除斜杠(或路径中的其他违规字符),重新导入项目,你就会好起来!

  • 1

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

  • 0

    当我从Maven导入一些 jar 时,我有同样的问题,然后导致 empty-test-suite 错误 .

    在我的情况下,这是因为maven重置模块文件 . 我通过清除默认配置解决了这个问题:

    • 使用shift-ctrl-alt-s快捷方式打开 Project structure

    Screenshot of PModules Sources

    • 查看Modules> Sources并填写Sources包或test包 .
  • 0

    如果未正确配置module-和/或project-jdk,也会发生这种情况 .

  • 0

    我遇到过同样的问题 . 在我的情况下,我在主文件夹之外的包/文件夹中有一些测试类 . 但是当我检查运行配置时,它总是试图在主文件夹中查找类(而不是我在main之外的包) . 因此,如果是这种情况,您必须将程序包移动到Run配置所指向的位置 . 或者将运行配置更改为指向您的包 .

  • 1

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

    Intellij module setting

  • 4

    我有同样的问题,重建/无效缓存等不起作用 . 似乎这只是Android Studio中的一个错误...

    临时解决方案就是从命令行运行单元测试:

    ./gradlew test
    

    见:https://developer.android.com/studio/test/command-line.html

  • 94

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

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

    使用不同的名称创建新的检测测试类 . 复制您 class 中的所有代码 . 运行 . 删除旧 class . 将新类重命名为所需名称 .

  • 11

    有同样的消息 . 我不得不删除运行/调试配置 .

    在我的情况下,我之前将单元测试作为本地测试运行 . 之后我将测试移到androidTest包并尝试再次运行它 . Android Studio记住了上次运行的配置,因此它尝试再次运行它作为产生相同错误的本地单元测试 .

    删除配置并再次运行测试后,它生成了一个新的配置并运行 .

    enter image description here

  • 1

    我去了

    File -> Invalidate Caches/Restart...
    

    然后它对我有用 .

  • 3

    我遇到过同样的问题 . 我重建了项目,它帮助了我 .

    转到 Build - > Rebuild Project

    之后,如果您使用的是Maven工具,我建议使用选项 Reimport All Maven Projects

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

    • 转到 File - > Invalidate Caches/Restart - > Invalidate and Restart

    要么:

    • 在您的Maven项目结构中 src/main/java 右键单击 java 目录并选择选项标记目录为 - > Sources Root

    同样用 test 目录做同样的事情: src/test/java 右键单击 java 目录并选择选项标记目录为 - > Test Sources Root

    要么:

    • 转到 Run - > Edit Configurations 并在 JUnit 部分中删除测试配置 . 应用更改 . 之后尝试运行测试 . 应自动创建新配置 .

    要么:

    • 转到 File --> Project Structure ,选择 Modules ,然后选择合适的模块并转到 Paths 选项卡 .
      检查选项:
      应选择单选按钮 Use module compile output path .

    输出路径应该在项目中 . 测试输出路径也应该是项目中的目录 . 例如,它看起来类似:
    输出路径:C:\ path \ to \ your \ module \ yourModule \target\classes
    测试输出路径:C:\ path \ to \ your \ module \ yourModule \target\test-classes

    应取消选择 Exclude output paths .

  • 2

    如果您的测试文件夹已作为单独的模块导入(项目视图中的文件夹图标上显示一个小方块),也可能发生这种情况 .
    通过在项目视图中选择测试文件夹删除模块,然后按DEL .
    然后开始你的测试 .
    如果出现带有错误消息的弹出对话框,但未选择任何模块,请从下拉列表中指定根模块 .

  • 3

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

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

    screenshot

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

  • 3

    您的测试是否需要Android设备(模拟器或硬件)?
    如果是这样,它被称为"instrumented test"并驻留在"module-name/src/androidTest/java/"中 .
    如果没有,它被称为"local unit test"并位于"module-name/src/test/java"

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

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

  • 1

    得到了同样的错误 . 我的设备没有连接到android studio . 当我连接到工作室 . 有用 . 这解决了我的问题 .

  • 0

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

  • 1

    在我的情况下,问题是通过进入我的 build.gradle 和更改来解决的

    dependencies {
        testImplementation 'junit:junit:4.12'
    }
    

    dependencies {
        testCompile 'junit:junit:4.12'
    }
    
  • 0

    就我而言,IntelliJ没有因为一个奇怪的原因编译测试源 . 我只是修改了构建配置并在 Before launch 部分添加了maven目标 clean test-compile

  • 31

    我尝试了所有解决方案,但没有一个帮助 . 最后我在调试模式下运行测试......它开始工作 . 也许有些maven的缓存被清除了 . 很难说 . 有用 . 试试 mvn test -X

  • 8

    只需在“项目”窗口中单击鼠标右键,然后选择

    “运行 YourTest ” .

    现在一切都好了,可能是因为错误的运行配置正在重建 .

  • 1

    有趣的是,由于不同的原因,我多次遇到这个问题 . 对于例如 Invalidating cache and restarting 也有所帮助 .

    最后我通过将 File -> Project Structure -> Project -> Project Compiler Output 中的输出路径更正为: absolute_path_of_package/out 来修复它

    例如: /Users/random-guy/myWorkspace/src/DummyProject/out

  • 38

    在安装新版本的IntelliJ并且IntelliJ插件尚未更新之后,这可能会发生(至少对我一次;) .

    您可能必须从IntelliJ帮助菜单中手动执行 Check for updates… .

  • 0

    同样的问题在这里使用IDEA 15.0.6,除了我重命名测试类所在的包之外没有任何帮助 . 之后我将其重命名为其原始名称并且它仍然有效,因此重命名操作可能已经清除了一些缓存 .

  • 1

    对我来说,这是因为我的项目被编译到项目之外的目录中 . 在路径中,输出路径是\ production \ project_name和\ test \ project_name,它们将它们放在C:\ production \ project_name中 . 将它们更改为项目的完整路径允许我的测试访问类文件 .

  • 1

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

    我做的是

    • 从IntelliJ旧版本(如IntelliJ14)打开/导出项目 . 这成功地发生了,我通过制作项目和运行测试用例来验证它 .

    • 然后我通过IntelliJ 2016再次导入了该项目 . 之后它工作正常(构建和测试用例运行) .

  • 5

    对我有用的是右键单击 Project folder -> Maven -> Generate Sources and Update Folders

  • 1

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

    • 转到文件 - >项目结构

    • 转到左侧的模块 .

    • 选择路径,选择单选按钮(使用模块编译输出路径)

    • 提供项目内的输出路径和测试输出路径

    • 取消选择“排除输出路径” .

    • 转到文件 - >单击无效缓存并重新启动

  • 14

    我对此问题的解决方法是文件夹名称和路径 .

    由于某些原因,我的测试缺少/ java /文件夹,IntelliJ不喜欢这样 .

    所以从../test/com/ ..到../test/java/com/ ..

    没关系

相关问题