gpt4 book ai didi

java - 如何访问 Pax Exam 测试探针包中的资源?

转载 作者:行者123 更新时间:2023-11-30 03:01:41 26 4
gpt4 key购买 nike

我正在使用 Pax Exam 4.8、junit4、JBoss Fuse 作为 OSGi 容器为一些 OSGi 包开发集成测试。假设标准 Maven 设置。

容器启动,我的包已部署并正确启动。

现在,在我的测试代码中,我需要加载资源并将其内容写入文件。如果我理解正确的话,单元测试会自动部署为测试探针包。

@RunWith(PaxExam.class)
@ExamReactorStrategy(PerMethod.class)
public class ExampleTest {

@javax.inject.Inject
BundleContext bundleContext;

@Configuration
public Option[] config() throws Exception {
// container setup
}

@Test
public void testThatApplicationProcessesThisFile() {
InputStream is1 = getClass().getResourceAsStream("myResource"); // returns null

Bundle probeBundle = bundleContext.getBundle("local");
InputStream is2 = probeBundle.getResource("myResource").openStream();
// getResource() returns null

// write the resource as a file
}

}

如何在 Pax Exam 测试中加载资源?如何检查资源是否包含在测试探针包中?

最佳答案

Jérémie 提出的解决方案运行良好:
this.getClass().getClassLoader().getResourceAsStream("/myresource");

我的问题出在设置上。我将资源放在 src/main/resources 文件夹中。看起来 Pax Exam 在构建探针包时仅包含 src/test/resources 文件夹中的资源。

将文件移动到正确的文件夹后,可以按照通常的方式将它们作为资源进行访问。

关于java - 如何访问 Pax Exam 测试探针包中的资源?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35795833/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com