我们有一个桌面应用程序,部署在OSGI包中,并且有集成测试来测试加载到OSGI容器中的包。
- 我正在寻找一种工具,以计算加载到OSGI包中的集成测试的代码覆盖率。
- 目前我们正在尝试使用Jacoco和Sonar进行集成测试代码覆盖率的处理,但我们不确定它们是否足够好来处理OSGI集成测试代码覆盖率。
- 还有其他可用的工具来计算OSGI集成测试代码覆盖率。
我们有一个桌面应用程序,部署在OSGI包中,并且有集成测试来测试加载到OSGI容器中的包。
大多数,如果不是全部的代码覆盖工具都应该可以与OSGi一起使用。它们通常的策略是对字节码进行后处理,注入额外的代码来实现代码覆盖率测量。这样做会引起最大的问题就是这些代码现在通常依赖于额外的代码(即代码覆盖库)。这些依赖关系可以通过显式地添加Import-Package语句来解决,就像处理其他任何依赖关系一样。
你还有另一个选择,就是将代码覆盖库添加到bootclasspath中,这样你就不需要那些额外的导入(这会破坏模块化,通常情况下不是你想要的,但在这种情况下无关紧要)。一旦解决了这个问题,剩下的就是对正确的bundle进行仪器化和聚合多个不同测试运行的结果。
我们采用第二种方法,它成功了。Jacoco能够提供OSGI集成测试的测试覆盖率,并在Sonar仪表板中展示。