NetBeansとGlassFish3.0.1を使用してEJB3アプリケーションを作成しています。JUnitを介して実行され、埋め込まれたGlassFishを利用するユニットテストをいくつか作成しました。これらのテストを開発マシンで(つまりNetBeans内から)実行するときはいつでも、それはすべて問題ありません。
ここで、ハドソンにそれらのテストを行わせたいと思います。現時点では、リソース(この場合はJPA永続性ユニットへのデータソース)のルックアップエラーで失敗しています。
[junit] SEVERE: Exception while invoking class org.glassfish.persistence.jpa.JPADeployer prepare method
[junit] java.lang.RuntimeException: javax.naming.NamingException: Lookup failed for 'mvs_devel' in SerialContext
周りを検索してこれについて学ぼうとした後、これは組み込みのGlassFishがリソースで構成されていないことに関連していると思います。つまり、domain.xmlファイルがありません。右?
2つの質問:
- 開発ボックスのNetBeansで動作するのはなぜですか?NetBeansはバックグラウンドでどのような魔法を実行しますか?
- ファイルはどのように提供すればよいですか?ハドソンボックスに埋め込まれたGlassFishはどこでそれを期待しますか?
Hudsonは、同じAntビルドスクリプト(NetBeansによって作成された)を使用しています。
instanceRootとEmbeddedFileSystemBuilderに関するこの投稿を読みましたが、十分に理解していません。これはすべてのテストケースに必要ですか(Emb。GFはテスト対象のBeanごとに開始/停止されます)?これはEJBContainer.createEJBContainer()の一部ですか?繰り返しますが、NetBeansでテストを実行するときに、これを行う必要がないのはなぜですか。
更新 Peterのアドバイスに従って、確認できます。ハドソンが構成されているのと同じプロパティを使用して、チェックアウトしたばかりのコードのコピーでantを実行すると、テストが実行されます。