初めてJUnitの単純なテスト以外のテストを行った。私は非常に古いEJB2.0 AntプロジェクトでArquillianをセットアップしましたが、ここでは行き詰まっています。Arquillian - いくつかの外部瓶の問題
はArquillianを設定します。
@Deployment
public static Archive<?> createDeployment() {
JavaArchive jar = ShrinkWrap.create(JavaArchive.class)
.addPackages(true, "com.admin", "com.framework", "com.pharmacy")
.addAsManifestResource(EmptyAsset.INSTANCE, "beans.xml");
EnterpriseArchive ear = ShrinkWrap.create(EnterpriseArchive.class)
.as(ZipImporter.class)
.importFrom(new File("C:\\jboss-4.2.3.GA\\server\\default\\administration.ear"))
.as(EnterpriseArchive.class);
ear.addAsLibrary(jar);
return ear;
}
私は、コンテナを打つデータソースを取得し、テーブルを照会することができますよ。しかし、他のJARに依存するコードを使用するテストを実行している場合、またはテストコード自体が他のJARに依存する場合、ClassNotFoundExceptionが発生します。
例えば、私のテストケースでは、httpclient-4.5.2.jar
とhttpcore-4.4.4.jar
を使用してHTTPリクエストを作成しようとしていますが、Eclipse junitテストコンソールの中にCaused by: java.lang.ClassNotFoundException: No ClassLoaders found for: org.apache.http.protocol.HttpContext
があります。 Eclipseのクラスパスにこれらのjarファイルがあり、Codehaus Cargoフレームワークを使って同じHTTPテストを実行すると動作します。
別の例では、クラスインスタンスを初期化しています。このクラスインスタンスは、apacheのvfs2 jarを使用してsftp呼び出しを行います。次に、jboss server.logの内部でこのエラーが発生します。Caused by: java.lang.ClassNotFoundException: No ClassLoaders found for: org.apache.commons.vfs2.FileSelector
私は間違っていますか?