問題タブ [jboss-arquillian]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - JBossシュリンクラップ
JBoss の Arquillian に関するいくつかのビデオ チュートリアルを見ているときに、ShrinkWrapと呼ばれる彼らの別のプロジェクトに出くわしました (Arquillian が使用しているため)。
彼らのプロジェクトページにしばらく時間を費やした後、私はいくつかの質問に対する具体的な答えを見つけることができないようであり、背後に大きな開発コミュニティを持たないかなり新しい (未熟な) プロジェクトのようです. 具体的には:
- ShrinkWrap の目的は、メモリ内の JAR、WAR、および EAR を作成することですか? もしそうなら、なぜ私はそれをしたいのですか?そうでない場合、ShrinkWrap の目的は何ですか? また、ShrinkWrap はどのような問題を解決しますか?
- ShrinkWrap はファイル システムに影響しますか (JAR は実際にディスク上に作成されますか、それとも本当に 100% メモリ内に作成されますか)? そうでない場合、メモリ内アーカイブの価値は何ですか?
前もって感謝します!
java - Arquillian と CDI
非常によく書かれた Arquillian Reference Guide を読んでいますが、依存性注入の設定について説明している章では、実際に Bean/バインディングを指定する場所が見つかりません。
ほとんどの Arquillian CDI コード例は、Java の@Inject
アノテーションの使用を示しています。ですから、これらの Bean/DI マッピング/バインディングをどこで定義し、Arquillian を使用するようにどのように構成すればよいのでしょうか?
Spring DI では、 のような Bean 記述子を指定しますspring-config.xml
。Guice では、 を実装し、そのメソッドModule
を定義します。configure(Binder)
を使用すると、これは Arquillian-land でどのように見えますjavax.inject.Inject
か? 前もって感謝します。
java - アルキリア星人の実行モード
私はアルキリア星人に頭を包み込もうとしていますが、in-container
モードとモードの違いを根本的に理解していませんas-client
。
私の理解では、Arquillian / ShrinkWrapを使用すると:
- 統合およびテストするコンポーネントのみを含むアーカイブを作成します
- このメモリ内アーカイブを実際のコンテナにストリーミングします(デプロイします)
- コンテナ内でテストとしてアーカイブを実行します
- あなたはそのテストの結果として何が起こるかについて主張します
in-container
したがって、私の観点からは、テストは常にコンテナー内で実行されるため、すべてが常にそうであるように「感じ」ます。
これら2つのモードの違いと、両方のモードが適している統合テストの種類を理解するのを手伝ってください。両方のモードでテストを実行する理由/方法を説明する具体的なコード例(リファレンスガイドから直接の漠然としたものではありません!)を提供するためのボーナスポイント。前もって感謝します!
java - Arquillian Drone / Graphene/SeleniumおよびUI/機能テスト
私は、JBoss Arquillianを完全に学習し、それをすべての統合および機能テストに使用することにかなりの時間を費やして、中途半端に売買されています。統合テストフレームワークに使用したいと100%確信していますが、UI /機能テストに使用することには少し懐疑的であり、Arquillian Drone / Graphene/Seleniumの経験がある人が保証できるかどうかを望んでいました。その機能:
- Javaテストケースで、任意のDOM要素(ボタン、div、画像など)へのあらゆる種類のエンドユーザー入力(マウスクリック、キーストロークなど)をシミュレートできますか?
- すべての主要なブラウザ(IE、FF、Chrome、Safari)とバージョンでこのすべての入力をシミュレートできますか?
- すべての主要なモバイルデバイス(モバイルWebおよびAndroid用のWebkit、Android、iOS、Windows Phone、Blackberry、Kindle、ネイティブ用のNook)およびバージョンでこのすべての入力をシミュレートできますか?
前もって感謝します!
security - エンタープライズ Bean で getUserPrincipal() および isCallerInRole() メソッドを使用するときに JUnit テストを作成する方法を教えてください。
私の環境は Jboss AS 7.1.0 です。単体テストには JUnit と Arquillian を使用しています。ejb で getUserPrincipal() および isCallerInRole() メソッドを使用する SSB があります。これらの ejb メソッドを単体テストするには、単体テスト ケースからログインをシミュレートしてから、ejb を呼び出す必要があります。
テストしようとしている EJB メソッドの例を次に示します。
このメソッドをテストする JUnit テスト ケースを作成するにはどうすればよいですか? よろしくお願いします。
07/19 の更新 (以下の Tair のソリューションに基づく) :
私のセキュリティドメインの構成は次のとおりです。
以下の Tair のソリューションに示されている JBossLoginConfigFactory を、org.jboss.security.auth.spi.DatabaseServerLoginModule を使用するように変更しました。
JBossLoginConfigFactory を変更して、DatabaseServerLoginModule に次のメソッドを使用するようにしました。
createUsersRolesLoginModuleConfigEntry() の代わりにこのメソッドを呼び出しています。テスト ケースの loginContext.login() は、次の理由で失敗するようになりました。
今何を変えればいいのかわからない!
2012 年 7 月 20 日更新: この問題の完全な解決策を以下に示します。あなたのソリューションが DatabaseServerLoginModule を必要としない場合は、Tair の返信でソリューションを参照するだけで十分です。
私の場合、JaaS 認証とダイジェスト認証としてデータベースを使用しています。したがって、上記の例に次のコード変更を加える必要がありました。
以下に示すように、「org.jboss.security.auth.spi.DatabaseServerLoginModule」をサポートするようにコード (JBossLoginContextFactory) を変更しました。AppConfigurationEntry[] の作成中に、createUsersRolesLoginModuleConfigEntry() の代わりにこのメソッドを呼び出しています。
private AppConfigurationEntry createDatabaseModuleConfigEntry() { マップ オプション = new HashMap(); options.put("dsJndiName", "java:jboss/datasources/MysqlDS"); options.put("principalsQuery", "プリンシパルからパスワードを選択します。ここで PrincipalID=?"); options.put("rolesQuery", "プリンシパルID=?のロールからロール、ロールグループを選択"); return new AppConfigurationEntry("org.jboss.security.auth.spi.DatabaseServerLoginModule", AppConfigurationEntry.LoginModuleControlFlag.REQUIRED, options); }
- ダイジェスト認証を使用しているため、パスワードはデータベースで暗号化されています。したがって、テスト ケースからパスワードを渡すときに、以下に示すようにパスワードを暗号化して渡します。LoginContext loginContext = JBossLoginContextFactory.createLoginContext("username", md5Hex("my_username"+":"+PropertyManager.getProp("realm")+":"+"my_password"));
これでログイン成功!!
java - Win7でのSeleniumFirefoxの問題
arquillian-examples arquillian droneチュートリアルmvn test
で(Maven 3を使用して)実行しています。
Win7で次のエラーが発生します(jdk 1.6.0.26を使用)。
次のいずれかを実行したいと思います。(a)Firefoxを機能させる。または(b)IEで動作させる。助言がありますか?
jboss - Arquillian と jboss-4.2.3.GA
私は jboss-4.2.3.GA プロジェクトに取り組んでいます。古いプロジェクトですが、新しいサーバーにアップグレードできません。
JPAにArquillianを使用しようとしています..
JPAのpomで次のエントリを使用しています
Arquillian を設定しようとしていますが、nosuchmethod が見つからない、またはデフォルトのコンテナが設定されていないなどの問題が発生しています。
設定する必要があるコンテナと依存関係の設定を手伝ってくれる人はいますか?
jboss-arquillian - arquillian-glassfish-embedded-3.1 1.0.0.CR3 JDBC データソースの構成
arquillian-glassfish-embedded-3.1 コンテナーを使用して、EJB3 アプリケーションをテストしようとしていました。ステートレス ejb にリソースとして注入できる単純な JDBC データソースをセットアップする方法を見つけようとしていました。
これが私が持っているものです:
次の内容の arquillian.xml もあります。
および domain.xml と
簡単なテストは次のようになります。
次のエラーが表示されます。
... 108 以上 原因: com.sun.enterprise.container.common.spi.util.InjectionException: Res-Ref-Env-Property を注入しようとしている例外: myDataSource@javax.sql.DataSource@ は次のように解決されました: jndi: myDataSource @res プリンシパル: null@mail: null ランタイム プロパティなし
... 108 以上 原因: com.sun.enterprise.container.common.spi.util.InjectionException: Res-Ref-Env-Property を注入しようとしている例外: myDataSource@javax.sql.DataSource@ は次のように解決されました: jndi: myDataSource @res プリンシパル: null@mail: null ランタイム プロパティなし
どんな助けでも大歓迎です。
ありがとう
java - JSF クラスの Arquillian テストの書き方
JSF API に根ざしたデータ モデルで arquillian テストを実行しようとしています。このエラーが発生しています:
JSF を含まない簡単な arquillian テストですが、JPA および EJB API は正常に動作します。
Web を調査すると、これの一般的な理由は、こことここで説明されているように、sun のスタブ EE API を使用していることであることが示唆されています。
私は間違いなくそれらを使用していません。my の依存関係部分は次のpom
とおりです。
また、テストに内部 JBoss JSF API を使用しようとしましたが、エラーには影響しませんでした。
私のモデルはプライムフェイスから派生していますLazyDataModel
LazyDataModel
次に、から導出されますjavax.faces.model.DataModel
テストはほとんど空です。モデルのインジェクションを要求して、以下を確認していnull
ます。
シュリンクラップの初期化を編集faces-config.xml
すると、ステファングラスによって提案されたように、が含まれるようになりました。ただし、エラー出力は変更しませんでした。
これを Jboss 7.1.0.Final で実行しています。
何が問題であり、それを解決する方法についてのアイデアはありますか?
ありがとうございました
java - Drone/Graphene での Arquillian Persistence の使用
同じテストでArquillian Graphene/SeleniumでArquillian Persistence拡張機能を使用できた人はいますか? Persistence & Drone/Graphene 拡張機能を使用しているプロジェクトがあり、別々に両方とも正常に動作します。Persistence を使用して統合テスト用にデータベースを構成でき、Drone を使用して UI 受け入れテストを実行できます。
問題は、Drone テストで Persistence 拡張機能を使用しようとしたときです。なんらかの理由で、データベースにデータが入力されていないため、Persistence 拡張機能が実行されていないように見えます。Persistence ExtensionをArquillianでクライアントモードで実行できるようにするために何か特別なことをする必要がありますか?
テストクラス
更新 deployment=false を削除して @RunAsClient を使用しようとしましたが、うまくいきませんでした。@UsingDataSet と @ApplyScriptBefore アノテーションをテスト自体に配置しようとしましたが、うまくいきませんでした。