Grails错误编译单元测试 - 无法解析应用程序类

时间:2013-10-28 11:43:56

标签: grails intellij-idea upgrade

从Intelliils IDEA内部运行“test-app”目标后,从grails 2.2.4升级到grails 2.3.1在编译单元测试时,我得到多个“无法解析类”错误:

| Error Compilation error compiling [unit] tests: startup failed:
/mnt/hgfs/Projekte/javandry/minigolf-webapp/test/unit/de/javandry/minigolf/webapp/controller/BallControllerTests.groovy: 3: unable to resolve class de.javandry.minigolf.webapp.Ball
@ line 3, column 1.
import de.javandry.minigolf.webapp.Ball
^

看起来应用程序本身的所有类都不能在单元测试中看到。当我从命令行运行目标时,一切都很好。

我已经尝试过:

  • 删除$USER_HOME/.grails/2.3.1/projects目录
  • grails.project.work.dir = "target"
  • 中设置BuildConfig.groovy
  • 删除$PROJECT_HOME/target目录
  • 在“test-app”
  • 之前运行“clean”和“clean-all”目标
  • 禁用“test-app”的分叉执行

错误仍然存​​在。

现在,我想出了我还能尝试的其他想法。

有任何想法吗?

1 个答案:

答案 0 :(得分:2)

一次又一次地尝试后,我终于编译了我的单元测试。

在我的运行配置中,我使用-clean选项调用“test-app”目标来强制进行干净的构建。根据日志输出和目标目录grails清除目标目录,但之后不编译主类。因此,目标目录不包含classes子目录,这会在编译单元测试时导致错误。

从我的运行配置中删除-clean选项,grails构建编译主类,然后成功进行单元测试。我以前没有在命令行中使用过这个选项,所以每次都能正常工作,导致我在IntelliJ中寻找错误。

我在命令行上使用新的测试项目进行了一些测试。 grails test-app成功构建grails test-app -clean失败的项目。我发现GRAILS-10642描述了类似的行为,应该在grails 2.3.2中修复。