Java 未找到类:IntelliJ中的测试套件为空
我刚开始在我的大学里学习计算机科学,我对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
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重置了模块文件。我通过清除默认配置解决了此问题:
删除
.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'