问题标签 [pax-exam]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2426 浏览

java - Pax Exam + Karaf 容器注入自定义服务遇到 ClassNotFoundException

最近我写了一个在 Karaf 容器中运行的集成测试,它使用 Pax Exam,这是我的代码:

}

但我发现它无法通过测试,因为测试包找不到我的自定义服务类(IFramework 框架)并报告:

我不知道问题出在哪里,实际上我在我的基础测试中注入了一些标准的 osgi 服务,它就像一个魅力,为什么在我使用自己的服务时会导致麻烦?有人可以给我一些提示吗?非常感谢

0 投票
2 回答
790 浏览

maven - 使用 PaxExam 3.x 运行测试 - TestNg

编辑以简化示例...

我正在将系统迁移到 Maven。我想使用 PaxExam 通过 TestNg 运行测试。

我正在尝试使用 PaxExam 运行一个简单的测试:

pom.xml:

Java程序:

当我验证测试时,我得到的结果是:

容器未启动,未运行测试。

0 投票
1 回答
270 浏览

java - linux jenkins上的pax考试(karaf)单元测试超时

我已经开始使用带有 Karaf 容器的 PAX-EXAM 来测试我们的应用程序。有时测试只是在测试方法开始之前挂起,它总是挂在 cxf 注册 mbeans 上:

注册MBean org.apache.cxf:bus.id=service-cxf1915658948,type=Bus.Service.Endpoint,service="{ http://org.service/ }Service",port="Service",instance.id= 888648364:javax.management.modelmbean.RequiredModelMBean@2dc85fc

任何人都知道为什么会发生这种情况?

Pax 考试:3.4.0
Karaf 容器:2.3.1

0 投票
2 回答
187 浏览

maven - paxexam 测试应该放在哪里?

我们正在使用 paxexam 3.3.0 来测试在 Karaf 3.0.0 中运行的捆绑包,利用 karafDistributionConfiguration() 来部署功能文件。一个典型的用例如下所示:

Bundle 1 -- REST http 服务
Bundle 2 -- 调用外部 API
的服务实现 Bundle 3 -- 将事务记录保存到 DB 的服务实现
Bundle 4 -- 接口
Bundle 5 -- 数据源

我的问题:对于 paxexam 集成测试用例应该驻留的位置是否有明确的约定?paxexam 测试是否应该始终存在于单独的 Maven 项目中?这对于在单个测试中涉及多个捆绑包的“完整”集成测试当然是有意义的。

另一方面,将简单的单包集成测试作为每个 maven 项目的一部分可能是有意义的,这样当我在单个项目/包上执行构建时,我可以选择包含特定于该包的集成测试.

想法?或者我可能会遇到的问题?

0 投票
3 回答
284 浏览

service - 使用 Pax Exam 3.X 激活声明式服务

目前我正在使用 Pax Exam 3.X(本机容器:apache.felix.framework)来测试 OSGi 应用程序。

我正在尝试自动启动声明性服务,但我只能在每个测试中显式调用 activate() 方法来启动它们。

还有另一种激活声明式服务的方法吗?

非常感谢。

0 投票
1 回答
576 浏览

apache-camel - PaxExam 和 CmPropertyPlaceholder

我正在尝试实施 PaxExam 来测试蓝图骆驼路线:

如果捆绑包部署在 Karaf 中它可以工作,但是当我尝试在 PaxExam 测试中运行它时,它会在初始化 CmPropertyPlaceholder 时失败并出现 NullPointerException:

这是我的 PaxExam 配置方法:

我需要做任何特别的事情才能将 cm:property-placeholder 与 PaxExam 一起使用吗?(删除标签使测试运行良好)

提前谢谢,干杯

0 投票
1 回答
2110 浏览

osgi - 如何启动 Pax-Exam 的测试容器?

我可能会问一个微不足道的问题。刚开始通过 Pax-Exam 学习 OSGi。

我所做的是一个 mvn archetype:generate for Hello World。我通过导入 PaxExam 相关的导入和其他内容更改了 AppTest.java。相应地更改了 pom.xml 以包含正确的依赖项。

当我做 mvn dependency:analyze 它说,

[警告] 发现未使用的已声明依赖项:[警告] org.ops4j.pax.exam:pax-exam-container-native:jar:3.4.0:test

当我做 mvn 测试时,我收到以下错误

测试错误:initializationError(com.test.maven.AppTest): No service org.osgi.framework.launch.FrameworkFactory found in META-INF/services on classpath

谁能帮助解决这个问题?我不知道如何在这里进行。

还是我想让苹果看起来像橘子?意思是,Pax Exam 只能与 src/test/resources/META-INF/services/ 中的 jar 一起使用?就像在 Apache Felix 或类似中安装一样。

0 投票
2 回答
538 浏览

java - PAX 考试和配置管理员

我正在尝试使用 PAX Exam 为捆绑包设置测试。

在用 注释的方法中Configuration,我设置了在运行测试之前必须加载的不同包。但是,被测捆绑包还期望通过 Config Admin 服务提供配置。

在 Eclipse 之外,我将 Apache Felix 框架与 Config Admin 和 File Install 一起使用,以便自动加载包 + 配置。

如何使用 PAX 考试提供配置信息?

谢谢,米凯尔

0 投票
1 回答
398 浏览

java - PAX 考试 - 未调用 @Before 方法

我正在尝试使用 PAX Exam 设置测试,如下所示:

@Before由于某种原因,没有调用带有注释的方法。

谢谢,米凯尔


编辑:我使用的 PAX 考试依赖项是:

我使用 PAX EXAM 3.4.0 版。

0 投票
0 回答
1536 浏览

java - Gradle 无法解析依赖的版本

我的项目依赖于 Pax Exam 框架。除其他外,我声明了对 Pax 的这些依赖项 (PAX_EXAM_VERSION = 3.4.0):

这两个都依赖于org.ops4j.pax.exam:pax-exam-spi,这是导致我的问题的模块。

所以,当我尝试构建我的项目时,报告的错误是这个:

Could not resolve org.ops4j.pax.exam:pax-exam-spi:3.4.0 ... Could not parse POM http://repo.maven.apache.org/maven2/org/ops4j/pax/exam/pax-exam-spi/3.4.0/pax-exam-spi-3.4.0.pom Unable to resolve version for dependency 'com.google.guava:guava:jar'

我努力了:

  • 从我所依赖的模块的传递依赖项中排除pax-exam-spi(但请注意,我仍然需要其中的类才能编译),将 Guava 添加到我的一级依赖项中,然后尝试pax-exam-spi使用transitive = false(won' t 工作,与上述相同的问题)。
  • 与上面相同,但不是做transitive = false,而是尝试使用artifact-only notation,如下所示:

    编译“org.ops4j.pax.exam:pax-exam-spi:${PAX_EXAM_VERSION}@jar”

我知道问题的根源在于 guava 版本没有在 中声明pax-exam-spi pom,而是在其父级exam中声明,它只声明了在 2 个不同配置文件的依赖管理会话中使用的 Guava 版本(这在 Maven 中有效,因为其中一个如果未设置属性,则激活配置文件,如果设置了该属性,则激活glassfish.release另一个)。但是,到目前为止,知道这一点还没有用:(

请让我知道是否有任何不那么 hacky 的方法来确保 Gradle 确实pax-exam-spi在我的类路径中包含 's jar,但甚至不尝试解析它的 POM(特别是指 jar 的硬编码路径是没有问题的!)。