我刚刚在我的大学开始计算机科学课程,而且我在使用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。
我有同样的问题,重建/无效缓存等不起作用。看起来这只是Android Studio中的一个错误......
临时解决方案只是从命令行运行单元测试:
./gradlew test
见:https://developer.android.com/studio/test/command-line.html
有趣的是,由于不同的原因,我多次遇到这个问题。对于例如使缓存无效并重新启动也有帮助。
最后我通过将文件 - >项目结构 - >项目 - >项目编译器输出中的输出路径更正为:absolute_path_of_package / out来修复它
例如:/ Users / random-guy / myWorkspace / src / DummyProject / out
如果未正确配置module-和/或project-jdk,也会发生这种情况。
我有同样的问题(Android Studio 3.2 Canary 4),我尝试了其他答案中描述的大多数建议 - 没有任何成功。请注意,这是在我将文件从test
移动到androidTest
文件夹后发生的。它仍然在运行配置中显示为测试而不是仪器测试。
我最终创建了一个新文件:
- 使用不同的名称创建新的检测测试类。
- 复制班级中的所有代码。
- 运行。
- 删除旧班。
- 将新类重命名为所需名称。
删除.idea
并重新导入SBT项目为我解决了这个问题。
就我而言,IntelliJ没有因为一个奇怪的原因编译测试源。我只是修改了构建配置并在clean test-compile
部分添加了maven目标Before launch
如果项目有编译问题,那么测试可能无法运行。首先将项目构建为Build - > Build Project。编译成功后重新运行测试。
如果没有任何效果,那么只需关闭项目窗口并删除项目并重新导入为Gradle / Maven项目,它将通过覆盖现有IntelliJ创建的文件为您设置所有内容。这将删除创建的无效缓存。
我遇到过同样的问题。在我的情况下,我在主文件夹之外的包/文件夹中有一些测试类。但是,当我检查运行配置时,它总是试图在主文件夹中查找类(而不是我在main之外的包)。因此,如果是这种情况,您必须将包移动到Run配置所指向的位置。或者将运行配置更改为指向您的包。
您的测试是否需要Android设备(模拟器或硬件)? 如果是这样,它被称为“检测测试”并位于“module-name / src / androidTest / java /”中。 如果没有,它被称为“本地单元测试”并驻留在“module-name / src / test / java”中
https://developer.android.com/training/testing/start/index.html
我得到了同样的错误,因为我已经编写了一个本地单元测试,但是它被放置在用于检测测试的文件夹中。将本地单元测试移动到“src / test / java”文件夹为我修复它。
我去了
File -> Invalidate Caches/Restart...
然后它对我有用。
得到了同样的错误。我的设备没有连接到android studio。当我连接到工作室。有用。这解决了我的问题。
这可能是因为文件夹未设置为测试源,可以通过模块设置>模块完成。
在我的情况下,问题是通过进入我的build.gradle
并改变来解决的
dependencies {
testImplementation 'junit:junit:4.12'
}
至
dependencies {
testCompile 'junit:junit:4.12'
}
我尝试了所有解决方案,但没有一个帮助。最后我在调试模式下运行测试....它开始工作。也许某些maven的缓存被清除了。很难说。有用。试试mvn test -X
只需在“项目”窗口中单击鼠标右键,然后选择
“运行YourTest”。
一切都刚刚开始好了,可能是因为错误的运行配置正在重新重建。
在安装新版本的IntelliJ并且尚未更新IntelliJ插件之后,这可能发生(至少对我一次;)。
您可能必须从IntelliJ帮助菜单中手动执行Check for updates…
。
在你的Maven项目结构中,src / main / java右键单击java目录并选择选项Mark目录为 - > Sources Root
同样用test目录做同样的事情:src / test / java右键单击java目录并选择选项Mark目录为 - > Test Sources Root
为我工作:-)
在我的情况下,测试名称有问题:)。
如果名称是:dummyNameTest
然后没有找到测试,但如果testDummyName
一切都很好
同样的问题在这里使用IDEA 15.0.6,没有任何帮助,除非我重命名测试类所在的包。之后我将其重命名为其原始名称,它仍然有效,所以重命名操作可能已经清除了一些缓存。
对我来说,这是因为我的项目被编译到项目之外的目录中。在路径中,输出路径是\ production \ project_name和\ test \ project_name,它们将它们放在C:\ production \ project_name中。将它们更改为项目的完整路径允许我的测试访问类文件。
我遇到过同样的问题。我重建了项目,它帮助了我。
转到Build - > Rebuild Project
之后,如果您使用的是Maven工具,我建议使用Reimport All Maven Projects选项
如果没有帮助,请尝试其他可能的解决方案:
要么:
要么:
要么:
我的环境也遇到了同样的问题(MacOS)。我使用的是IntelliJ 2016.我有一个Java库项目(gradle)。
我做的是
如果您的测试文件夹已作为单独的模块导入(项目视图中的文件夹图标上显示一个小方块),也可能发生这种情况。 通过在项目视图中选择测试文件夹删除模块,然后按DEL。 然后开始你的测试。 如果出现带有错误消息的弹出对话框,但未选择任何模块,请从下拉列表中指定根模块。
就我而言,我把所有其他东西放在了正确的位置,但我正在使用kotlin开发一个java库。我忘了申请插件:
apply plugin: 'kotlin-android'
现在,它现在按预期工作。
所以,我的问题是文件夹名称。我打电话给我的代码文件夹Classes 2016/2017,这是IntelliJ不喜欢的。只需删除斜杠(或路径中的其他违规字符),重新导入项目,你就会好起来!
在Android Studio 3.0 +中,有时UI测试以某种方式被解释为单元测试,并且它不会要求选择目标部署。您可以转到编辑配置并将其标记为集成测试,它将开始工作
当我从Maven导入一些jar
时,我有同样的问题,随后,导致empty-test-suite
错误。
在我的情况下,这是因为maven重置模块文件。我通过清除默认配置解决了这个问题: