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

ger*_*lus 51 scala intellij-idea gradle

我正在评估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"
Run Code Online (Sandbox Code Playgroud)

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

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

我发现了一个相关的问题无法从IDEA 13.0 IDE为导入的gradle项目运行Junit测试,但是提供的修复(升级到13.0.2)不起作用.

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

bra*_*ers 30

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

项目结构配置屏幕

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

  • 我已经为此注册了一个错误。请投票!https://youtrack.jetbrains.com/issue/IDEA-148213 (2认同)

Rus*_*man 25

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

我正在使用IDEA 14.

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

$ rm -rf .idea project-name.iml
Run Code Online (Sandbox Code Playgroud)

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

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

  • 谢谢,对我来说,只需移动 *.iml 文件并再次生成它就足够了(在 maven 选项卡中 - 与 maven 有同样的问题) (2认同)
  • 我移动了一些模块,它也破坏了 .iml 配置文件中的项目结构,导致类似的症状。 (2认同)

小智 12

转到项目设置 - >项目.

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

转到模块 - >路径

确保:

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

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

应该管用!


jgp*_*s2w 10

简单的“构建>重建项目”对我有用。


Sta*_*tas 7

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

同时,您的模块必须具有 Scala 方面,并且该类必须位于“测试源文件夹”内。


小智 6

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


Jet*_*Jet 5

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