config.properties
我有一个 OSGi 包,它在激活过程中从 Apache Felix 的文件中读取一些属性,如果此配置格式错误或不存在,则该包不应该启动。为此,我正在创建其各自的单元测试,我正在使用 Arquillian 进行测试。当我想为conf.properties
不同的 Arquillian 测试提供不同类型的测试以涵盖每种情况时,就会出现问题。
当 Arquillian 运行测试时,它会framework.properties
从/test/resources/
文件夹中加载一个文件来初始化 Apache Felix,安装测试包并运行测试。现在,我的问题是如何framework.properties
为每个测试用例提供不同的文件?
这是我使用的 Arquillian 单元测试:
@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=
这些是我需要针对不同场景更改和测试它们的属性值。