1

JSF ページのテストに Arquillian + Selenium を使用したいと考えています。私のプロジェクトの構造は次のとおりです。

/src/main/java - my java classes
/src/main/resources
/src/main/resources/META-INF - all imgs, css, js and custom composite JSF components
/src/main/webapp/pages - my xhtml pages
/src/main/webapp/WEB-INF - descriptors, JSF template

必要なものすべて、つまりすべてのリソース、テストしたい特定の xhtml ページ、WEB-INF ディレクトリを含むテスト展開アーカイブを構築したいと考えています。META-INF リソースを除くすべてをコピーできました。シュリンクラップに META-INF ディレクトリ全体をデプロイするように指示する方法はありますか? ありがとうございました。

4

2 に答える 2

4

別の解決策 ( http://arquillian.org/guides/functional_testing_using_graphene/にあります)

archive.merge(ShrinkWrap.create(GenericArchive.class)
   .as(ExplodedImporter.class)
   .importDirectory(WEBAPP_SRC).as(GenericArchive.class),
   "/", Filters.include("META-INF\\.*\\.xml"));
于 2014-07-17T13:16:27.300 に答える
3

次のようなことができます:

File[] files = new File("src/main/resources/META-INF").listFiles();
WebArchive war = ShrinkWrap.create(WebArchive.class, "test.war");
for (File file : files) {
    war.addAsManifestResource(file);
}
war.writeTo(System.out, Formatters.VERBOSE);

src/main/resources/META-INF に次のファイルがあるとします。

beans.xml
configuration1.xml
configuration2.xml

...出力されます:

test.war:
/META-INF/
/META-INF/beans.xml
/META-INF/configuration2.xml
/META-INF/configuration1.xml

ネストされたマルチモジュール プロジェクトがある場合は、File コンストラクターに渡されるパスを調整する必要がある場合があります。

于 2014-03-14T13:32:50.427 に答える