Pax考试偶尔会失败

时间:2013-03-14 17:10:15

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

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

    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命令的不同测试中随机发生。在我的机器上,如果机器处于负载状态,它们更有可能发生。

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

谢谢,

迈克尔

1 个答案:

答案 0 :(得分:0)

还有pax-exam-karaf,它还有一个功能安装程序,可从配置中使用。如果您想坚持“手动”安装,请确保事先安装功能服务。例如,让服务注入。