未find类:IntelliJ中的空testing套件
我只是在我的大学开始了计算机科学课程,而且我在IntelliJ上遇到了一些问题。 当我尝试运行unit testing时,我收到消息
Process finished with exit code 1 Class not found: "edu.macalester.comp124.hw0.AreaTest"Empty test suite.
我还在屏幕左侧看到一条标题为“未findtesting”的消息。 我的testing代码在这里:
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; } }
我怎样才能让我的testing工作? 提前致谢。 我正在使用最新版本的IntelliJ IDEA CE。
有相同的消息。 我不得不删除运行/debuggingconfiguration。
就我而言,我之前是作为本地testing进行unit testing的。 之后,我把我的testing移动到androidTest包,并试图再次运行它。 Android Studio记得最后一次运行configuration,所以它试图再次运行它作为本地unit testing产生相同的错误。
删除configuration并再次运行testing后,它生成一个新的configuration,并工作。
所以,我的问题在于文件夹名称。 我已经打电话给我的代码文件夹2016/2017年,IntelliJ不喜欢。 只要删除斜线(或path中的其他违规字符),重新导入项目,你会很好去!
当你的模块和/或项目jdkconfiguration不当时也会发生这种情况。
如果您的testing文件夹已作为单独的模块导入(项目视图中的文件夹图标上显示一个小方块),也可能会发生这种情况。
通过在项目视图中selecttesting文件夹来移除模块,然后按DEL键。
然后开始你的testing。
如果popup对话框出现错误消息,表示没有select模块,请从下拉列表中指定您的根模块。
当我从Maven导入一些jar
时候,我遇到了同样的问题,并且导致了empty-test-suite
错误。
就我而言,这是因为maven重置模块文件。 我通过清除我的默认configuration来解决问题:
- 用shift – ctrl – alt – s快捷键打开项目结构
- 查看“模块”>“源”,然后填写“源”包或testing包。
在我的情况下,问题是通过进入我的build.gradle
并改变
dependencies { testImplementation 'junit:junit:4.12' }
至
dependencies { testCompile 'junit:junit:4.12' }
开始一个新的IntelliJ项目后,我有一个类似的问题。 我发现我的模块的“模块编译输出path”没有正确指定。 当我将模块的“编译输出path”中的path分配到正确的位置时,问题就解决了。 编译输出path在Project设置中分配。 在“模块”下,select涉及的模块,然后select“path”选项卡…
“项目设置”|“path”选项卡 模块对话框
…我将编译器输出发送到父项目文件夹中存在名为“输出”的文件夹。
得到同样的错误。 我的设备没有连接到android studio。 当我连接到工作室。 有用。 这解决了我的问题。
同样的问题在这里使用IDEA 15.0.6,没有什么帮助,除了当我重命名testing类的包。后来我重新命名为它的原始名称,它仍然工作,所以重命名操作可能已经清除了一些caching。
我遇到过同样的问题。 在我的情况下,我有一些testing类在主文件夹以外的包/文件夹。 但是,当我检查运行configuration,它总是试图寻找主文件夹内的类(而不是我的包之外的包)。 所以如果是这样的话,你必须将你的软件包移动到运行configuration指向的位置。 或者将运行configuration更改为指向您的软件包。
对我来说是因为我的项目被编译到项目之外的目录。 在path中,输出path是放在C:\ production \ project_name中的\ production \ project_name和\ test \ project_name。 将它们更改为项目的完整path允许我的testing访问类文件。
您的testing是否需要Android设备(模拟器或硬件)?
如果是这样,它被称为“仪器testing”,并驻留在“module-name / src / androidTest / java /”中。
如果不是,称为“本地unit testing”,并驻留在“module-name / src / test / java”
https://developer.android.com/training/testing/start/index.html
我得到了同样的错误,因为我写了一个本地unit testing,但它被放置在文件夹testing的文件夹。 把本地的unit testing移到“src / test / java”文件夹中。
我在我的环境中也有同样的问题(MacOS)。 我正在使用IntelliJ 2016.我有一个Java库项目(gradle)。
我做的是
- 从IntelliJ旧版本(如IntelliJ14)中打开/导出项目。 这成功发生了,我通过做项目和运行一个testing用例来validation它。
- 然后我通过IntelliJ 2016再次导入该项目。之后,它工作正常(build设和testing案例运行)。
删除.idea
并重新导入SBT项目为我解决了这个问题。
这可能是因为该文件夹没有设置为testing源,可以通过模块设置>模块来完成。
什么对我来说是右键单击Project folder -> Maven -> Generate Sources and Update Folders
重新导入项目或模块可以解决问题。 我在开发时通过重命名包名来解决了这个问题。 但是出路和testing输出path是老路。 所以intellij不能从老路上findclass级。 所以最简单的方法是纠正输出path和testing输出path。
对我来说,这个项目是在项目之外编辑的。 我只是改变道路。 为了改变path(我使用的是Mac)。
- 转到文件 – >项目结构
- 转到左侧的模块。
- selectpath,select单选button(使用模块编译输出path)
- 提供您的项目中的输出path和testing输出path
- 取消select排除输出path。
- 转到文件 – >点击无效caching,然后重新启动
在我的情况下,IntelliJ没有编译testing源的一个奇怪的原因。 我只是修改了构buildconfiguration,并Before launch
添加了maven目标clean test-compile
我去了
File -> Invalidate Caches/Restart...
然后它为我工作。
在我的情况下,这是因为我有重构的代码,并有“项目结构”(由CTRL + SHIF + ALT + S打开)中显示的问题,然后我解决问题列表并重新运行,它的工作原理。