3

Arquillian の Web サイト http://arquillian.org/guides/functional_testing_using_drone/でチュートリアルを読んでいます。

「クライアントモードの有効化」の段落の下で、同じテストでコンテナ内モードとクライアントモードを混在させることが可能であると述べています! testable 属性はそのままにしておきます。@RunAsClient でアノテーションが付けられたメソッドはすべてクライアントから実行され、残りはコンテナー内で実行されるため、両方の利点が得られます。

ここに私の問題があります。ユーザーがテストを書きたい

@Drone
DefaultSelenium browser and

@EJB
MyXXXRepository

そのユーザーでブラウザにログインするSeleniumテストを行う前に、InMemoryデータベースにユーザーを追加する1つのテストがあります...

したがって、Selenium を機能させるには、@Deployment に testable=false を指定する必要があります。これにより、@EJB が失敗します。したがって、ドキュメントによると、クライアント モードで実行する必要があることを Selenium テスト メソッドに指示すると、testable=false をスキップできます。ドキュメントによると、これは機能するはずです。しかし!!!これは例外をスローします

Caused by: java.lang.NoClassDefFoundError: Lcom/thoughtworks/selenium/DefaultSelenium;

だから私は伝えることができる必要があります

@Drone
DefaultSelenium browser;

クライアントモードでも...

テイカーはいますか?

4

2 に答える 2

0

テストの前にユーザーをインポートするインポート スクリプトを使用して問題を解決しました。この方法では、リポジトリをインスタンス化する必要がなく、クライアント側のクリーンなテストになりました。

于 2013-05-27T06:52:11.577 に答える