1

在从 IntelliJ 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”的分叉执行

错误仍然出现。

现在,我已经没有什么可以尝试的想法了。

有什么想法吗?

4

1 回答 1

2

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

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

从我的运行配置中删除该-clean选项,grails 构建会编译主类,然后成功地进行单元测试。我之前没有在命令行上使用过这个选项,所以那里一切正常,导致我在 IntelliJ 中寻找错误。

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

于 2013-10-28T20:10:10.437 回答