testing - Arquillian与用于OSGi(集成)测试的Pax考试相比如何?

我目前正在研究如何最好地测试打算在Apache Karaf上运行的OSGi应用程序。显而易见的选项是带有labs-paxexam-karaf的Pax考试(有关教程,请参见http://iocanel.blogspot.com/2012/01/advanced-integration-testing-with-pax.html)。但是,我担心性能(因为Pax考试显然为每种测试方法启动了一个新框架)。我也发现了Arquillian has some OSGi support,尽管这不是它的主要重点。 JUnit4osgi不是一个选项,因为它仅支持JUnit 3。

对于不熟悉这两种框架的人,哪个更好开始?有哪些权衡?

最佳答案

如果要获得适当的OSGi支持,为什么要使用Arquillian? =)

在查看PaxExam时,请确保文档引用了PaxExam 2-v 1和2之间存在实质性差异。

PaxExam将花费一些时间来掌握,但是您将在此过程中学习有关OSGi的知识(绝对是一件好事,但仍然会造成伤害)。

与@Dmytro的答案并行的是,Test Containers包括一个本机容器,该容器在与junit test相同的VM上运行-这意味着您可以在Eclipse中使用debug启动。这对于org.eclipse.m2e:lifecycle-mapping maven eclipse插件和org.ops4j.pax.exam:maven-paxexam-plugin尤其有效。这种方法是完美的,完整的IDE集成。

PaxExam文档有点稀疏,但是有一些good examples(请参见带有提供交互式Shell的main方法的Native启动器)和wiki doc。如果您遇到麻烦,邮件列表人员(general@lists.ops4j.org)会非常有帮助。

另一种选择是查看Karaf's paxexam,它非常流畅并且易于启动和运行Karaf实例(features.xml等)。

就我个人而言,我只是使用PaxExam2,因为我希望对框架提供程序没有明确的依赖关系(根本不反对Karaf,它摇摆不定)。

本文翻译自 https://stackoverflow.com/questions/10208373/

网站遵循 CC BY-SA 4.0 协议,转载或引用请注明出处。

标签 testing osgi jboss-arquillian pax pax-exam


相关文章:

c# - Rhino模拟在do方法上引发“回调参数与方法参数委托不匹配”的异常

python - 使用pytest管理测试数据的正确方法是什么?

testing - 设置用于测试和反馈扩展的冲刺板

java - 如何让Spring JPA,Hibernate和OSGi发挥出色?

java - Arquillian与黄瓜建立失败

testing - 如何在gradle 2.x中运行单个测试用例(使用JUnit)?

java - OSGi中的服务引用

java - 如何在JBoss Fuse蓝图中使用多个属性占位符?

java - 运行Arquillian Cucumber JVM测试时Eclipse控制台文本出现问题

java - Java EE CDI拦截器在JAX-RS资源类中不起作用