Arquillian で Java EE アプリケーションをテストしたいと考えています。Arquillian が管理するサーバーにいくつかのテスト クラスを配置してテストするための簡単なセットアップが機能しています。
ここで、ビルド プロセス中にビルドされた EAR ファイルを使用したいと考えています。と
@Deployment
public static EnterpriseArchive createDeployment() {
File earFile = ...
EnterpriseArchive archive = ShrinkWrap.createFromZipFile(EnterpriseArchive.class, earFile);
return archive;
}
Arquillian を介して JBoss に EAR を配置できます。展開が表示され、展開中にエラーはありません。Arquillian だけが、テスト クラスが見つからないというエラーを返しますが、これは明らかに問題ありません。
ここで、テスト クラスをどこに配置するかが問題になります。Arquillian によって EAR に入れられた test.war にテスト クラスを入れることができますが、ArquillianServletRunner が見つからないという例外が発生します。テスト クラスをモジュールまたはライブラリとして JAR ファイルに配置すると、依存関係の問題により、モジュールとして配置するとテスト クラスが見つからないか、ライブラリとして配置するとインジェクトが機能しません。
テストクラスをどこに置く必要がありますか???
私のarquillian.xml:
<?xml version="1.0" encoding="UTF-8"?>
<arquillian xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://jboss.org/schema/arquillian"
xsi:schemaLocation="http://jboss.org/schema/arquillian http://jboss.org/schema/arquillian/arquillian_1_0.xsd">
<defaultProtocol type="Servlet 3.0" />
<container qualifier="jboss7" default="true">
<configuration>
<property name="jbossHome">${cargo.dir}/jboss-as-dist-7.1.1.Final/jboss-as-7.1.1.Final</property>
</configuration>
</container>
<engine>
<property name="deploymentExportPath">target/deployments</property>
</engine>
</arquillian>