问题标签 [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.
java - Pax Exam + Karaf 容器注入自定义服务遇到 ClassNotFoundException
最近我写了一个在 Karaf 容器中运行的集成测试,它使用 Pax Exam,这是我的代码:
}
但我发现它无法通过测试,因为测试包找不到我的自定义服务类(IFramework 框架)并报告:
我不知道问题出在哪里,实际上我在我的基础测试中注入了一些标准的 osgi 服务,它就像一个魅力,为什么在我使用自己的服务时会导致麻烦?有人可以给我一些提示吗?非常感谢
maven - 使用 PaxExam 3.x 运行测试 - TestNg
编辑以简化示例...
我正在将系统迁移到 Maven。我想使用 PaxExam 通过 TestNg 运行测试。
我正在尝试使用 PaxExam 运行一个简单的测试:
pom.xml:
Java程序:
当我验证测试时,我得到的结果是:
容器未启动,未运行测试。
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
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 项目的一部分可能是有意义的,这样当我在单个项目/包上执行构建时,我可以选择包含特定于该包的集成测试.
想法?或者我可能会遇到的问题?
service - 使用 Pax Exam 3.X 激活声明式服务
目前我正在使用 Pax Exam 3.X(本机容器:apache.felix.framework)来测试 OSGi 应用程序。
我正在尝试自动启动声明性服务,但我只能在每个测试中显式调用 activate() 方法来启动它们。
还有另一种激活声明式服务的方法吗?
非常感谢。
apache-camel - PaxExam 和 CmPropertyPlaceholder
我正在尝试实施 PaxExam 来测试蓝图骆驼路线:
如果捆绑包部署在 Karaf 中它可以工作,但是当我尝试在 PaxExam 测试中运行它时,它会在初始化 CmPropertyPlaceholder 时失败并出现 NullPointerException:
这是我的 PaxExam 配置方法:
我需要做任何特别的事情才能将 cm:property-placeholder 与 PaxExam 一起使用吗?(删除标签使测试运行良好)
提前谢谢,干杯
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 或类似中安装一样。
java - PAX 考试和配置管理员
我正在尝试使用 PAX Exam 为捆绑包设置测试。
在用 注释的方法中Configuration
,我设置了在运行测试之前必须加载的不同包。但是,被测捆绑包还期望通过 Config Admin 服务提供配置。
在 Eclipse 之外,我将 Apache Felix 框架与 Config Admin 和 File Install 一起使用,以便自动加载包 + 配置。
如何使用 PAX 考试提供配置信息?
谢谢,米凯尔
java - PAX 考试 - 未调用 @Before 方法
我正在尝试使用 PAX Exam 设置测试,如下所示:
@Before
由于某种原因,没有调用带有注释的方法。
谢谢,米凯尔
编辑:我使用的 PAX 考试依赖项是:
我使用 PAX EXAM 3.4.0 版。
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 的硬编码路径是没有问题的!)。