2013-10-28 70 views
1

从IntelliJ IDEA内部运行“test-app”目标时,从grails 2.2.4升级到grails 2.3.1后,出现多个“无法解析类”错误编译单元测试:Grails错误编译单元测试 - 无法解析应用类

| 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“
  • 禁用”test-app“的分叉执行

错误仍然出现。

现在,我用尽了什么我可以尝试的想法。

有什么想法吗?

回答

2

经过一次又一次的尝试,我终于得到了我的单元测试编译。

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

从我的运行配置中删除-clean选项,grails构建编译主要类,然后成功执行单元测试。我以前没有在命令行上使用这个选项,所以万事通很好,导致我在IntelliJ中寻找错误。

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