0
我创建了一个OSGi example project,并且希望改进集成测试所需的包的提供。动态引用包与Pax集成测试考试
眼下束静态地利用CoreOptions.bundle("reference:file:" + <path>)
按文件名引用,问题因而是测试将在未来一段时间内失效,当罐子的名称更改(因换版为例)。
有没有更好的方式来部署所需的依赖关系?也许使用符号名称或组/工件ID?
@RunWith(PaxExam.class)
public class ServiceTestCase {
@Inject
private Service service;
@Configuration
public Option[] config() {
return CoreOptions.options(
/* needed for ds annotations */
CoreOptions.mavenBundle("org.apache.felix", "org.apache.felix.scr", "1.8.2"),
CoreOptions.bundle("reference:file:../service/target/service-0.0.1-SNAPSHOT.jar"),
CoreOptions.bundle("reference:file:../service.impl/target/service.impl-0.0.1-SNAPSHOT.jar"),
CoreOptions.junitBundles());
}
@Test
public void testInjections() {
Assert.assertNotNull(service);
}
}
Thx为您的答案。我应该在测试pom中使用什么范围的依赖关系?提供? – mike
测试范围,但说实话,没关系。考试将提供一个新的容器,测试的类路径将不会被使用。 –
谢谢。从命令行一切正常。不过,Eclipse抱怨道:'插件执行不在生命周期配置中:org.apache.servicemix.tooling:depends-maven-plugin:1.2:generate-depends-file(执行:generate-depends-file,phase:generate-resources )'你知道吗。关于那个? – mike