从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
目录错误仍然存在。
现在,我想出了我还能尝试的其他想法。
有任何想法吗?
答案 0 :(得分:2)
一次又一次地尝试后,我终于编译了我的单元测试。
在我的运行配置中,我使用-clean
选项调用“test-app”目标来强制进行干净的构建。根据日志输出和目标目录grails清除目标目录,但之后不编译主类。因此,目标目录不包含classes子目录,这会在编译单元测试时导致错误。
从我的运行配置中删除-clean
选项,grails构建编译主类,然后成功进行单元测试。我以前没有在命令行中使用过这个选项,所以每次都能正常工作,导致我在IntelliJ中寻找错误。
我在命令行上使用新的测试项目进行了一些测试。 grails test-app
成功构建grails test-app -clean
失败的项目。我发现GRAILS-10642描述了类似的行为,应该在grails 2.3.2中修复。