【问题标题】:Grails: Error running forked test-app: No such property: Ant for class: _EventsGrails:运行分叉测试应用程序时出错:没有这样的属性:Ant for class:_Events
【发布时间】:2019-12-06 17:37:10
【问题描述】:

我使用的是 Grails 2.4.4,当我运行 test-app -unit -clean 时出现以下错误。在 grails shell 中,我仍然可以运行单独的单元测试

Testing started at 12:05 PM ...
/Library/Java/JavaVirtualMachines/jdk1.7.0_55.jdk/Contents/Home/bin/java -Dgrails.home=/Users/terskine/.sdkman/candidates/grails/2.4.4 -Dtools.jar=/Library/Java/JavaVirtualMachines/jdk1.7.0_55.jdk/Contents/Home/lib/tools.jar -Dgroovy.starter.conf=/Users/terskine/.sdkman/candidates/grails/2.4.4/conf/groovy-starter.conf -Xmx768M -Xms768M -XX:MaxPermSize=256m -XX:PermSize=256m -Dbase.dir=/Users/terskine/git/myphotoid-api -Dgrails.build.listeners=org.jetbrains.groovy.grails.rt.GrailsIdeaTestListener -Dgrails.project.fork.test.debugArgs -Dfile.encoding=UTF-8 -classpath /Users/terskine/.sdkman/candidates/grails/2.4.4/lib/org.codehaus.groovy/groovy-all/jars/groovy-all-2.3.7.jar:/Users/terskine/.sdkman/candidates/grails/2.4.4/dist/grails-bootstrap-2.4.4.jar org.codehaus.groovy.grails.cli.support.GrailsStarter --classpath "/Applications/IntelliJ IDEA.app/Contents/plugins/Grails/lib/grails-rt.jar" --main org.codehaus.groovy.grails.cli.GrailsScriptRunner --conf /Users/terskine/.sdkman/candidates/grails/2.4.4/conf/groovy-starter.conf "test-app -unit -clean --stacktrace -plain-output"
|Loading Grails 2.4.4
|Configuring classpath
.
|Environment set to test
.......................................................
|Running without daemon...
objc[82887]: Class JavaLaunchHelper is implemented in both /Library/Java/JavaVirtualMachines/jdk1.7.0_55.jdk/Contents/Home/bin/java (0x10171a4c0) and /Library/Java/JavaVirtualMachines/jdk1.7.0_55.jdk/Contents/Home/jre/lib/libinstrument.dylib (0x10178a4e0). One of the two will be used. Which one is undefined.
| Error Error running forked test-app: No such property: Ant for class: _Events (NOTE: Stack trace has been filtered. Use --verbose to see entire trace.)
groovy.lang.MissingPropertyException: No such property: Ant for class: _Events
    at _Events$_run_closure2.doCall(_Events.groovy:17)
    at org.springsource.loaded.ri.ReflectiveInterceptor.jlrMethodInvoke(ReflectiveInterceptor.java:1270)
| Error Error running forked test-app: No such property: Ant for class: _Events
Error |
Forked Grails VM exited with error

Process finished with exit code 1

更新:回应评论

我的应用程序中有一个自定义事件脚本。

eventCreateWarStart = { warName, stagingDir ->
    Ant.delete(dir: "${stagingDir}/build")
    Ant.delete(dir: "${stagingDir}/node_modules")
    Ant.delete(dir: "${stagingDir}/src")
    Ant.delete(dir: "${stagingDir}/test")
    Ant.delete(file: "${stagingDir}/aurelia.protractor.js")
    Ant.delete(file: "${stagingDir}/gulpfile.js")
    Ant.delete(file: "${stagingDir}/jsconfig.json")
    Ant.delete(file: "${stagingDir}/karma.conf.js")
    Ant.delete(file: "${stagingDir}/package.json")
    Ant.delete(file: "${stagingDir}/protractor.conf.js")
}

【问题讨论】:

  • 您的项目中有自定义事件脚本吗?
  • @JeffScottBrown ,是的。我将_Events.groovy 文件的内容添加到上述问题中。我需要导入Ant吗?

标签: unit-testing grails


【解决方案1】:

我发现这个 GitHub 问题有帮助

这是资产管道如何初始化的问题。当事情还没有被编译时,它会对_Events.groovy 中的编译类进行处理。我所知道的让它消失的唯一方法是没有一个干净的目标目录并且[要这样做],你首先需要grails package,然后再执行grails run-app(或test-appwar ) 以便首先编译资产管道类并提供给_Events.groovy

所以,我运行了以下命令并且成功了:

grails clean
grails package
grails test-app

之后,我能够运行grails clean ; grails test-app,但运行grails teat-app -clean 时仍然出现同样的错误,但我现在可以忍受。如果有人能更好地解释这一点,我将不胜感激。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多