【发布时间】:2011-10-11 07:10:24
【问题描述】:
我正在使用 maven 和故障保护插件运行我的集成测试。测试本身是使用 pax-exam(使用 pax-runner)执行的。 Failsafe 在集成测试阶段运行,Cobertura 在验证阶段运行。
虽然我获得了所有 junit 测试的报告,但我从集成测试中一无所获。
这在技术上是否可行,还是 pax-runner 需要直接支持 cobertura?
知道如何解决这个问题吗?我也对任何其他有帮助的插件持开放态度,但我确实需要在 OSGi 包上运行集成测试..
谢谢!
【问题讨论】:
-
我想知道为什么您的 PAX 考试集成测试需要代码覆盖率。恕我直言,这些应该保留用于验证,例如,OSGi 元数据是否正确,而不是关于特定功能,因此该逻辑的覆盖率报告不会有多大用处。
-
嗯.. 感谢您的评论。我目前对我的代码的许多功能的覆盖率相当低。我可以编写大量的单元测试,但我不确定它是否真的能证明什么。我要测试的真正功能需要多个捆绑包,所以我必须一起测试它们。还是我们对集成测试的用途和内容有不同的概念?谢谢!
-
当我需要验证我的包是否可以在真正的 OSGi 运行时环境中工作时,我会考虑使用 PAX Exam。任何依赖于 OSGi 的东西——Package-Imports 和 Package-Export、服务或捆绑事件、与服务注册中心的交互等等——都是公平的测试。但是,我认为大多数实际功能都可以在 OSGi 容器之外进行测试,这就是代码覆盖的意义所在。如果不是这种情况,一些对可测试性有敏锐眼光的重构可能会有所帮助。我还发现了 DS 和 Blueprint 的帮助,因为对 OSGi 类的(代码)依赖较少。
标签: osgi integration-testing cobertura