在Intellij上运行测试:未找到类

问题描述 投票:40回答:11

我正在评估IntelliJ(13.0.2 133.696)并且无法在IDE中运行jUnit测试。

我的项目是一个多模块gradle项目并使用scala。

测试类位于src / test / scala / xxx / xxxxx / xxx / xxxx / xxxxx下,每当我尝试从IDE运行时,我都会遇到同样的错误:

Class not found: "xxx.xxxxx.xxx.xxxx.xxxxx.AccountRepositoryTest"

测试类没什么特别的,简单的jUnit测试:

@RunWith(classOf[SpringJUnit4ClassRunner])
@ContextConfiguration(classes = Array(classOf[DataConfig], classOf[SettingsConfig]))
class AccountRepositoryTest extends AssertionsForJUnit {

我发现了一个相关问题Cannot run Junit tests from IDEA 13.0 IDE for imported gradle projects,但提供的修复程序(升级到13.0.2)不起作用。

我甚至尝试升级到最新的EAP,仍然是同样的问题。

scala intellij-idea gradle
11个回答
25
投票

我有同样的问题,在我的情况下,问题是由于项目设置中的“项目编译器输出”路径留空。

为了解决这个问题,我在项目根目录中创建了一个classes目录,并将Project compiler output设置为绝对路径(使用按钮进行浏览)。


0
投票

修改模块的.iml文件的标签中的内容,如下所示。这个对我有用。

<content url="file://$MODULE_DIR$">
  <sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
  <sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true" />
  <excludeFolder url="file://$MODULE_DIR$/target" />
</content>

0
投票

IDEA重启为我解决了这个问题。


19
投票

我查看了一些这些答案,与项目设置相关,尝试了一些事情,等等,没有任何效果。 (完全披露:我不是想在这里玩Gradle;我只是在使用Maven,但我不知道这与Gradle有什么关系。)

我正在使用IDEA 14。

我发现什么工作,因为它似乎只是IntelliJ迷失了方向,是这样的:

$ rm -rf .idea project-name.iml

然后重新启动IntelliJ并执行文件 - >打开 - >导航到我的项目的根目录等 - 简而言之,只是重新创建我的项目。

IntelliJ克服了它。我可能在这个项目中搞砸了一些东西,因为我已经对包名和类名进行了大量的重构,我甚至改变了项目名称。 (这可能是我的错。)


12
投票

转到项目设置 - >项目。

填写Project编译器输出:ex。 d:\回购\项目\出

转到模块 - >路径

确保:

输出路径类似于D:\ repo \ Project \ out \ production

测试输出路径,如D:\ repo \ Project \ out \ test

应该管用!


3
投票

检查该测试的“运行/调试”配置“使用模块的类路径和SDK:”应该指向您的模块。

在此期间,您的模块必须具有Scala构面,并且该类必须位于“Test source Folders”中。


3
投票

我有同样的问题。我在模块设置 - >模块 - >路径 - >测试输出路径中更改了路径,以测试类字节码(不包括输出路径)。现在一切正常!


3
投票

您可以尝试使缓存无效并重新启动。这通常会在您添加新的依赖项/类时解决问题。


2
投票

确保您的测试类包和您正在编写测试用例的类不相同。如果测试用例和类具有相同的包,编译器将查看src文件夹并忽略测试文件夹。


1
投票

我有同样的问题,Intellij没有找到测试输出路径。然而,运行常规应用程序没有任何问题。

对我来说,修复程序正在从继承的项目编译路径更改为使用模块编译输出路径。

项目设置 - >模块 - >(您的模块) - >路径(选项卡)

将无线电选择按钮更改为“使用模块编译输出路径”。对我来说,自动填充的建议有效,如果自动提示不起作用,您可能需要手动输入正确的测试输出路径。请记住应用设置更改。


1
投票

只需将您的测试文件的文件夹标记为Intellij IDEA中的测试文件夹即可。这对我有用。如果您有多个具有相同名称的源文件的目录,请将包添加到类源文件中(如果不存在)!

© www.soinside.com 2019 - 2024. All rights reserved.