0

我们正在使用 paxexam 3.3.0 来测试在 Karaf 3.0.0 中运行的捆绑包,利用 karafDistributionConfiguration() 来部署功能文件。一个典型的用例如下所示:

Bundle 1 -- REST http 服务
Bundle 2 -- 调用外部 API
的服务实现 Bundle 3 -- 将事务记录保存到 DB 的服务实现
Bundle 4 -- 接口
Bundle 5 -- 数据源

我的问题:对于 paxexam 集成测试用例应该驻留的位置是否有明确的约定?paxexam 测试是否应该始终存在于单独的 Maven 项目中?这对于在单个测试中涉及多个捆绑包的“完整”集成测试当然是有意义的。

另一方面,将简单的单包集成测试作为每个 maven 项目的一部分可能是有意义的,这样当我在单个项目/包上执行构建时,我可以选择包含特定于该包的集成测试.

想法?或者我可能会遇到的问题?

4

2 回答 2

0

我们还在 Apache Sling 中使用了这两个选项,以下是每个选项的示例:

Pax Exam 测试在一个单独的包中:

https://svn.apache.org/repos/asf/sling/trunk/installer/it

Pax Exam 测试在同一个包中,使用bundle.file.name在 POM 中设置的系统属性,以允许测试找到刚刚构建的包:

https://svn.apache.org/repos/asf/sling/trunk/bundles/scripting/core - 查看BindingsValuesProvidersByContextIT.java课程。

我同意这两个选项是否有效取决于测试的“大小”以及它们是测试单个捆绑包还是捆绑包组合。

使用 IT 后缀命名测试类会导致它们在集成测试阶段由故障安全插件执行,而不是在测试阶段执行。

于 2014-01-16T10:56:16.220 回答
0

好吧,Pax Exam 是为集成测试而设计的,因此最好将集成测试与测试模块中的源代码分开。但是也可以在同一个包中使用 Pax-Exam,不过需要一些额外的调整。您可以在我的博客gihub 项目中找到一个工作示例。
特点是将需要测试的类添加到 pax-exam 测试容器中,因为通常同一个项目的捆绑包还不存在。

于 2014-01-16T07:21:28.023 回答