0

我找到了 Peter Ledbrook 关于测试 Grails 脚本的文章 ( http://www.cacoethes.co.uk/blog/groovyandgrails/testing-your-grails-scripts )。“太好了”,我想,我们开始吧。但我花了很长时间(没有互联网访问)未能让它工作。我正在使用 Grails 2.1.1 和 GGTS 3.1

我试图运行他的 hello-world 脚本。当我将它作为命令调用时它会起作用。但是当我尝试从 test\cli 中的测试类调用它时,退出代码始终为 1。我在测试(和脚本)中添加了一些 println 语句。据我所见,该脚本永远不会被调用(提供的脚本也没有像'war')。这是我的测试课的开始:

class HelloWorldTests extends AbstractCliTestCase {

void testDefault() {
    println "work dir: "+System.getProperty("grails.home") //cli.work.dir")
    println "about to call script"
    execute(['hello-world']) // Pass parameters in the list
    println "called script"

    int exitCode = waitForProcess()
    println "exit code "+exitCode
    println "output: "+super.getOutput()
    if (exitCode != 0) {
        println output
    }
    assertEquals 0, exitCode

println 语句的输出是:

work dir: C:\Apps\GGTS310\grails-2.1.1\
about to call script
called script
exit code 1
output: 

从我可以通过查看 AbstractCliTestCase 的代码得出的形式来看,“输出”中应该有一些东西,但没有。

感激地收到帮助

约翰

4

1 回答 1

0

这与使用 64 位 JVM 有关。当我将 test-app 的运行时配置更改为使用 32 位版本的 jdk 1.7.09 时,我的测试运行了。

参考:

http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=7196103 Java 错误说它已在 09-2012 中修复。但没有迹象表明它在哪个更新中。

Windows XP 上的 Java 最大内存 关于 虚拟内存分配的论述。

无法在具有大堆大小的 64 位 Windows 7 中运行 64 位 JVM 这个人通过将他的页面文件从 2 增加到 4 Gb 解决了这个问题。我试过了,重新启动,但没有区别。

也许现在的答案是让测试应用程序使用 32 位 Java,或者如果我可以强制更新到 1.7.09(如果存在),那么可能会有上述修复。

于 2013-02-14T15:33:50.430 回答