0

私はJavaライブラリを持っています。Mavenでビルドします。どこかでGWTユーザーが使用できることを確認したいと思います。必要に応じて、@GwtCompatibleと@GwtIncompatibleを追加しました。ここで、これが期待どおりに機能することをテストしたいと思います。

ライブラリはJavaのテストフレームワーク(http://github.com/truth0/truth)であり、さまざまなテスト提案などを提供します。人々は純粋なJavaユニットテストで使用しますが、使用することもあります。 GWT統合テストで(たとえば、GWTTestCaseを拡張します)。私自身はこのアプリケーションを持っていませんが、GWTで使用したときに壊れないことを検証する必要があります。

通常のJUnitテストでは、(自明に)次のようなコードを使用します。

import static ...Truth.ASSERT;

ASSERT.that(123456).isGreaterThan(12345);

このライブラリのGWT互換サブセットを完全に実行するために構築したい小さなGWTTestCaseを作成しました。簡単なGWTTestCaseの例は次のようになります。

import static org.truth.Truth.ASSERT
...
public class TruthGwtTest extends GWTTestCase {
  @Override public String getModuleName() {
    // I have a org/truth/TruthTest.gwt.xml file
    return "org.truth.TruthTest";
  }
  public void testFoo() {
    ASSERT.that(457923).is(1); // want this to fail
  }
}

私のTruthTest.gwt.xmlは次のようになります(そして私はここで少し「貨物カルト」をしていることを認めます)

<module>
  <source path=""/>
  <super-source path="super"/>
  <inherits name="com.google.gwt.junit.JUnit"/>
</module>

gwt-maven-pluginを「コンパイル」と「テスト」の実行でバインドすると、両方の実行が適切にバインドされ、両方が出力で実行されます。小さなサーバーが生成されて実行されますが、テストがタイムアウトします。生成されたサーバーのコンテンツを調べると、生成されたjavascriptがたくさん表示されますが、テストで作成したコードに関連するコードは生成されたサーバーのどこにも表示されません。

生成されたコードでこのマジックナンバーがgrep可能になることを期待して、値457923を選択しましたが、見つかりません。ドキュメントから、すべてのコードが適切にGWTコンパイルされていることを確認するために何をする必要があるのか​​わかりません。Truthフレームワーク自体にも、GWTTestCaseのテストメソッドにも関連付けることができるコードはありません。

gwt-maven-pluginの専門家はいますか?注-これはアプリではなく、ライブラリです-gwtコンパイラとGwtTestCaseに、GWTインフラストラクチャに、そこから出てくると思うものが出てくることを検証するように強制したいだけです。小さなテストWARプラグインでmaven-failsafe-pluginを実行する必要がありますか?ガー。

4

1 に答える 1

0

わかりました-私はそれを理解しました。問題は、htmlunitにブラウザーエミュレーションを指定していなかったことであるように思われ、デフォルトのブラウザーがないため、明示的に設定する必要がありました。それ以外の場合は、単体テストを含むサーバーを起動し、ブラウザーに接続することを期待します。

于 2012-08-21T05:29:28.353 に答える