2011-02-17 6 views
0

私は生産モードでいくつかのGWTモジュールのユニットテストを含む自動ビルドスクリプトを持っています。これらのテストが実行されると、GWTモジュールが再コンパイルされるように見えます。すでにコンパイルされたモジュールでGWTTestCaseを実行

しかし、ビルドスクリプトの初期段階では、すでにモジュールをコンパイルしています。これは明白な努力の無駄です。既にコンパイルされたモジュールでGWTTestCaseを実動モードで実行する方法を知っている人はいませんか?

ビルドサーバーは、どのテストが失敗するかを開発者に通知するだけで、自分の環境でデバッグすることを期待しているので、スタックトレースや情報を失うことはありません。

答えて

0

これは

ためのテストインフラストラクチャの主要なクラスがJUnitShellで参考になります。テストの実行方法を制御するには、このクラスに引数を渡す必要があります。通常のコマンドライン引数は直接JUnitランナーに送られるため、引数はコマンドラインから直接渡すことはできません。代わりに、JUnitShellに引数を渡すためにシステムプロパティgwt.argsを定義します。生産モードでテストを実行するために例えば

、(つまり、彼らにはJavaScriptにコンパイルされているのaferテストを実行)、= -Dgwt.argsを宣言「 - PRODの」JVM引数としてのJUnitを呼び出すとき。サポートされているオプションの完全なリストを取得するには、-Dgwt.args = "--help"(テストを実行する代わりにヘルプがコンソールに表示されます)を宣言します。 プロダクションモードでテストを実行

webAppCreatorツールを使用すると、開発モードまたは本番モードでテストを起動できます。まれに、JavaとJavaScriptの違いにより、コードのデプロイ時に異なる結果が生じる可能性があります。

代わりに、コマンドラインからJUnit TestRunnerを実行する場合は、本番モードでユニットテストを実行するためにいくつかの追加引数を追加する必要があります。デフォルトでは、開発モードで実行されるテストは、JVM内の通常のJavaバイトコードとして実行されます。このデフォルトの動作をオーバーライドするには、

-Dgwt.args = JUnitShell

に引数を渡す必要がある「 - PROD」

+0

私はそれを実動コードで実行する方法を知っていますが、問題はこのことが既に完了したときにプロジェクトを再コンパイルすることです。私はすでにコンパイルしたことをコードに指摘したいと思います... –

0

まあ、私は解決策を見つけたが、それはelagantされていません。私はJUnitShell.maybeCompileForWebModeメソッドを変更しましたが、単体テストの実行中にコンパイルを防ぐために、VM引数-Dcompile=falseを追加する必要があります。 JUnitShellの修正版はhereから入手できます。

関連する問題