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

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

200095 次浏览

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

如果您的测试文件夹已经作为一个单独的模块导入(项目视图中的文件夹图标上显示一个小正方形),也可能会发生这种情况 通过在项目视图中选择测试文件夹来删除模块,并按.
然后开始测试。
如果弹出对话框显示错误消息,表示没有选择模块,则从下拉菜单中指定根模块

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

这里使用IDEA 15.0.6也有同样的问题,除了重命名测试类所在的包外,没有任何帮助。之后我重命名为它原来的名字,它仍然工作,所以重命名操作可能已经清除了一些缓存。

也传达了同样的信息。我必须删除运行/调试配置。

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

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

enter image description here

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

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

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

截图

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

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

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

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

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

得到相同的错误。我的设备没有连接到android studio。当我连接到工作室。它的工作原理。这解决了我的问题。

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

我所做的是

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

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

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

  1. 使用转变-ctrl-alt-年代快捷方式打开项目结构

截图of PModules Sources

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

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

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

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

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

Intellij模块设置

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

  • 进入文件—>项目结构
  • 进入左边的模块。
  • 选择路径,选择单选按钮(使用模块编译输出路径)
  • 提供输出路径和测试输出路径,这是在你的项目
  • 取消选择“排除输出路径”。
  • 进入文件——>单击“无效缓存”并重新启动

在我的情况下,通过进入我的build.gradle并进行更改,问题得到了解决

dependencies {
testImplementation 'junit:junit:4.12'
}

dependencies {
testCompile 'junit:junit:4.12'
}

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

我去了

File -> Invalidate Caches/Restart...

然后它对我有用。

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

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

我也有同样的问题。我重建了项目,这对我很有帮助。

构建——> 重建项目

之后,如果你使用Maven工具,我建议使用选项重新导入所有Maven项目

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

  • 文件——>缓存失效/重启——> 无效和重新启动

或者:

    在您的Maven项目结构src / main / java中,右键单击java目录并选择选项将目录标记为—> 源根

    同样地对测验目录进行同样的操作,因此:src /测试/ java右键单击java目录并选择选项将目录标记为——> Test 源根< /强> < br > < /李>

或者:

  • 转到运行——> 编辑配置,并在< em > JUnit < / em >部分删除测试配置。应用更改。然后尝试运行您的测试。应该自动创建新的配置。

或者:

  • 转到文件——>项目结构,选择模块,然后选择合适的模块,转到路径选项卡。
    检查选项:
    单选按钮使用模块编译输出路径应该被选中。

    输出路径应该在你的项目中。而且测试输出路径应该是项目中的目录。例如,它可以看起来类似:
    输出路径: C:\path\to\your\module\yourModule \ \目标类
    测试输出路径: C:\path\to\your\module\yourModule 目标\ \测试类

    模块0应该被取消选中。

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

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

< p > . . /测试/ com/.。 来 . . /测试/ java / com/.。< / p >

这是好的

我试了所有的办法,但没有一个有用。最后,我在调试模式和....运行测试它开始起作用了。也许某个专家的藏宝被清空了。这很难说。它的工作原理。尝试mvn test -X

只需在项目窗口中的文件上单击鼠标右键并选择

“运行YourTest”。

现在一切开始正常,可能是因为错误的运行配置正在重新构建。

我有同样的问题,重建/无效缓存等不工作。似乎这只是Android Studio的一个bug……

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

./gradlew test

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

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

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

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

有趣的是,由于不同的原因,我遇到过很多次这个问题。例如,使缓存失效并重新启动也有帮助。

最后,我通过将文件->项目结构->项目->项目编译器输出中的输出路径更正为:< < em > absolute_path_of_package /了/ em >来修复它

例如:< em > /用户/胡乱/ myWorkspace / src / DummyProject / < / em >

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

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

在我的例子中,我把其他所有东西都放在了正确的位置,但我正在用芬兰湾的科特林处理java库。 我只是忘记应用插件:

apply plugin: 'kotlin-android'

现在它正按照预期工作。

在您的Maven项目结构src/main/java右键单击java目录,并选择选项Mark directory as——> Sources Root

src/test/java右键单击java目录,选择选项Mark directory as——> test Sources Root

为我工作过:-)

首先,我们需要了解为什么会发生这种情况,错误消息是明确的:

进程结束,退出码为1

. acalester.comp124.hw0. areatest "空测试套件

因此,这主要发生在创建单元测试类之后,我们在从类级别运行方法(测试)之前单独运行它们。就这些

在IntelliJ IDEA中将包/目录标记为测试源。

如果项目存在编译问题,则测试可能无法运行。 因此,首先构建项目为build ->构建项目。 编译成功后重新运行测试

如果没有任何工作,那么只需关闭项目窗口并删除项目,重新导入为Gradle/Maven项目,这将通过覆盖现有的IntelliJ创建的文件来为您设置一切。这将删除创建的无效缓存。

您也可以使缓存无效。

File -> Invalidate Caches/Restart

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

如果name是: dummyNameTest则在找到的地方不进行测试,但以防万一 testDummyName everything was ok

在Intellij中遵循以下步骤(为了更好地理解,有截图):

  1. 去文件>项目结构

enter image description here

  1. 导航到模块,现在选择你的Junit测试文件所在的模块,并选择“使用模块编译输出路径”;单选按钮。

  2. 提到各自的类文件夹路径,类似于所附的截图。

enter image description here

  1. Do apply and ok。 这对我很管用!李< / >

删除和重新创建运行配置也有帮助。

我没有编译代码。

为了解决这个问题,我执行了以下操作。

去Maven >单击执行Maven目标

enter image description here

执行命令

mvn test-compile

从下拉菜单中选择项目。

现在去运行你的测试,它会起作用的

我也遇到了同样的问题,但没有一个解决方案对我有效。

您可以尝试以下步骤:

  1. 在Intellij IDEA中关闭项目。
  2. 删除文件资源管理器中的.idea文件夹并重新打开项目。
  3. 再做一次测试

我遇到了同样的问题,最后,我在我的项目中发现了一个重复的测试类,具有相同的包名和类名。

我也有同样的问题。我使用了一个不是英语的字符,重命名它解决了我的问题。
例:ı ->i . < / p >