config.properties
アクティブ化プロセス中に Apache Felixのファイルからいくつかのプロパティを読み取る OSGi バンドルがあります。この構成が正しくないか存在しない場合、バンドルは開始されません。このために、それぞれの単体テストを作成しています。テストには Arquillian を使用しています。conf.properties
各シナリオをカバーするために、さまざまなタイプの Arquillian テストをさまざまな Arquillian テストに提供したいときに問題が発生します。
Arquillian がテストを実行するとframework.properties
、フォルダーからファイルをロードして/test/resources/
Apache Felix を初期化し、テスト バンドルをインストールしてテストを実行します。framework.properties
さて、私の質問は、テスト ケースごとに異なるファイルを提供するにはどうすればよいかということです。
これが私が使用する Arquillian Unit Test です。
@RunWith(Arquillian.class)
public class PersistenceLoaderTest {
@Deployment
public static Archive<?> createDeployment() {
final JavaArchive archive = ShrinkWrap.create(JavaArchive.class, "persistence-arq.jar");
archive.addClass(ProviderLoader.class);
archive.setManifest(new Asset() {
public InputStream openStream() {
OSGiManifestBuilder builder = OSGiManifestBuilder.newInstance();
builder.addBundleSymbolicName(archive.getName());
builder.addBundleManifestVersion(2);
builder.addImportPackages("org.osgi.service.startlevel", "org.osgi.service.url");
builder.addImportPackages(ProviderLoader.class);
return builder.openStream();
}
});
return archive;
}
@ArquillianResource
public Bundle bundle;
@ArquillianResource
BundleContext bundleContext;
@Test
public void loadFrameworkConfiguration(){
// What goes here?
}
}
そしてframework.properties
ファイル:
# The Felix Framewok log level
#
# ERROR = 1;
# WARNING = 2;
# INFO = 3;
# DEBUG = 4;
felix.log.level=4
org.domain.database=mydb
org.domain.driver=org.hsqldb.jdbcDriver
org.domain.url=jdbc:hsqldb:file:
org.domain.username=sa
org.domain.password=
これらは、さまざまなシナリオで変更してテストする必要があるプロパティ値です。