0

Grails スクリプトのテストに関する Peter Ledbrook の記事を見つけました ( 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 バグによると、2012 年 9 月に修正されました。しかし、それがどのアップデートに含まれているかは示されていません。

Windows XP での Java 最大メモリ 仮想メモリの割り当てに関する説明。

ヒープ サイズが大きい 64 ビット Windows 7 で 64 ビット JVM を実行できない この人は、ページ ファイルを 2 GB から 4 GB に増やすことで問題を解決しました。私はそれを試し、再起動しましたが、違いはありませんでした。

今のところの答えは、test-app で 32 ビット Java を使用することかもしれません。または、1.7.09 (存在する場合) への更新を強制できれば、上記の修正が適用される可能性があります。

于 2013-02-14T15:33:50.430 に答える