3

私は、GWT + SmartGWTアプリケーションのクライアント側で単体テストを行っています。

最初にGwtTestCaseでテストしました。巨大なアプリケーションの単体テストには時間がかかりすぎます。GwtTestSuiteは役に立ちません。実行にはまだ時間がかかりすぎます。(さらに、テスト中にブラウザを起動するように求められました)

次にgwt-test-utils : 優れたフレームワーク。悲しいことに、私の javassist のバージョンは 3.5 で、少なくとも 3.11 が必要です。Javassist は gilead が使用しているため、これには触れられません。したがって、gwt-test-utils はありません...

セレンを見ました。それは素晴らしいことです。htmlunit ドライバーを使用すると、高速で便利です。Web アプリケーションをテストする最も簡単な方法。ここでの問題は、SmartGWT が Web ページを生成するときに独自の ID を生成することです。したがって、これらの ID は常に変化しているため、TextItems を取得して入力することはできません。ウィジェットの初期化の前に setID() を使用することで解決できることがわかりました。しかし、これは scLocator の ID であり、HTML ID ではありません。Selenium は scLocator と連携したくありません。

=> Selenium で scLocator を受け入れる簡単な方法はありますか? (そして、シンプルと言うときは、シンプルでなければなりません... 私は Java の専門家ではありません...)

誰かがアプリケーションの単体テストを手伝ってくれませんか? これは Java でコーディングされており、サイズが大きく、コードの約 70% (25,000 行のコード) をカバーする必要があります。

その他の仕様: Maven を使用してコンパイルします。サーバー側には触れていません。テストは GwtTestCase や Suite よりも高速でなければなりません:/

私の問題が明確であることを願っています。私は英語が母国語ではないので、間違いをお詫びします:x

4

3 に答える 3

1

Selenium拡張機能とそのユーザーガイドは、SDKのトップレベルの「selenium」ディレクトリにあります。

3.1dを(smartclient.com/buildsから)ダウンロードすると、JUnitのサンプルを含むさらに多くのドキュメントがあります。

sureDebugId()を使用しないでください(まったく効果がありません)。DOM IDを操作しようとしないでください(機能しません)。

Seleniumユーザーガイドのベストプラクティス情報では、setID()をいつ使用する必要があるかについて説明しています。

于 2012-04-24T22:51:30.690 に答える
0

<defaultUserExtensionsEnabled> true </ defaultUserExtensionsEnabled>
<userExtensions>[user-extensions.jsへのパス]</userExtensions>

そこに行きます。私はなんとかそれを機能させることができました。(<configuration>タグにselenium-maven-pluginを使用)

でもあなたの助けをありがとう。

于 2012-04-27T09:12:38.030 に答える
0

ウィジェットの初期化の前に setID() を使用することで解決できることがわかりました。しかし、これは scLocator の ID であり、HTML ID ではありません。

試してみませんか:

widget.ensureDebugId("some-id");

ensureDebugId()の Java ドキュメントから:

この UIObject のメイン要素に ID プロパティが設定されていることを確認してください。これにより、サードパーティのライブラリやテスト ツールとの統合が可能になります。

于 2012-04-20T10:29:20.530 に答える