【问题标题】:Pax Exam tests fail occasionallyPax 考试测试偶尔会失败
【发布时间】:2013-03-03 04:28:06
【问题描述】:

我正在使用 Pax Exam 在 Karaf 中测试 CXF REST 服务。测试几乎总是在我的机器上顺利运行。在 Jenkins(在 Maven 构建下)运行时,它们通常会失败。失败似乎是随机的和不可预测的。我在失败期间收到的错误涉及尝试运行 Karaf 命令。命令由以下sn-p执行:

    def byteArrayOutputStream = new ByteArrayOutputStream();
    def printStream = new PrintStream(byteArrayOutputStream);
    CommandProcessor commandProcessor = getOsgiService(CommandProcessor.class);
    CommandSession commandSession = commandProcessor.createSession(System.in, printStream, System.err);
    commandSession.put("APPLICATION", System.getProperty("karaf.name", "root"));
    commandSession.put("USER", "karaf");
    commandSession.execute(command)

这些是我试图在测试设置方法中执行的命令:

'features:addurl mvn:org.apache.cxf.karaf/apache-cxf/2.7.2/xml/features', 'features:install http', 'features:install cxf'

这是个例外:

org.apache.felix.gogo.runtime.CommandNotFoundException: Command not found: features:addurl

显然有时 Karaf 无法正确启动并且无法处理这些命令。像这样的错误在不同 Karaf 命令的不同测试中随机发生。在我的机器上,如果机器处于负载状态,它们更有可能发生。

什么可能导致 Karaf 以这种方式行事?如何防止这些错误的发生?

谢谢你,

迈克尔

【问题讨论】:

    标签: testing osgi cxf apache-karaf pax-exam


    【解决方案1】:

    还有 pax-exam-karaf,它还有一个可以从配置中使用的功能安装程序。如果您想坚持“手动”安装,您应该确保预先安装了功能服务。比如让服务被注入。

    【讨论】:

    • 我在使用 pax-exam-karaf 功能安装程序时遇到了问题,因此我将 pax-exam-karaf 与手动功能安装一起使用。您是说我可以等待 features 服务并使用该服务安装新功能,而不是使用 CommandProcessor 服务执行命令?
    • 是的,这也可以实现:)
    • 您在使用 pax-exam-karaf 功能安装程序时遇到了哪些问题,它通常就像一个魅力。 Karaf 本身确实用它进行了测试。
    猜你喜欢
    • 1970-01-01
    • 2016-08-28
    • 1970-01-01
    • 1970-01-01
    • 2015-06-14
    • 2018-08-08
    • 2019-05-26
    • 1970-01-01
    • 2016-05-19
    相关资源
    最近更新 更多