- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用 PAX Exam 设置测试,如下所示:
@ExamReactorStrategy(PerMethod.class)
public class AbstractTest {
@Configuration
public Option[] config() {
return options(
junitBundles(),
/* PAX Logging */
mavenBundle("org.ops4j.pax.logging", "pax-logging-api", "1.7.2"),
mavenBundle("org.ops4j.pax.logging", "pax-logging-service", "1.7.2"),
/* Apache Felix Config Admin */
mavenBundle("org.apache.felix", "org.apache.felix.configadmin", "1.8.0"),
/* Eclipse Gemini dependencies */
mavenBundle().groupId("org.aopalliance").artifactId("com.springsource.org.aopalliance").versionAsInProject(),
mavenBundle().groupId("org.springframework").artifactId("org.springframework.aop").versionAsInProject(),
mavenBundle().groupId("org.springframework").artifactId("org.springframework.beans").versionAsInProject(),
mavenBundle().groupId("org.springframework").artifactId("org.springframework.context").versionAsInProject(),
mavenBundle().groupId("org.springframework").artifactId("org.springframework.core").versionAsInProject(),
/* Eclipse Gemini */
mavenBundle("org.eclipse.gemini.blueprint", "gemini-blueprint-core", GEMINI_VERSION),
mavenBundle("org.eclipse.gemini.blueprint", "gemini-blueprint-extender", GEMINI_VERSION),
mavenBundle("org.eclipse.gemini.blueprint", "gemini-blueprint-io", GEMINI_VERSION),
/* Other bundles */;
}
@Before
public void setUp() throws Exception {
....
}
}
@RunWith(PaxExam.class)
public class MyTest extends AbstractTest {
@Inject
private MyObject myObject;
@Test
public void testOne() {
...
}
}
由于某种原因,使用@Before
注释的方法没有被调用。
谢谢,迈克尔
<小时/>编辑:我使用的 PAX EXAM 依赖项是:
<dependency>
<groupId>org.ops4j.pax.exam</groupId>
<artifactId>pax-exam-container-native</artifactId>
<version>${pax.exam.version}</version>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.osgi</groupId>
<artifactId>org.osgi.core</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.ops4j.pax.exam</groupId>
<artifactId>pax-exam-junit4</artifactId>
<version>${pax.exam.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.ops4j.pax.exam</groupId>
<artifactId>pax-exam-link-mvn</artifactId>
<version>${pax.exam.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.ops4j.pax.url</groupId>
<artifactId>pax-url-aether</artifactId>
<version>${url.version}</version>
<scope>test</scope>
</dependency>
我使用 PAX EXAM 版本 3.4.0。
最佳答案
我已经设置了一个测试项目并且运行良好。
我终于找到了导致问题的原因。看来测试的执行在配置过程中停止了。
我使用 Eclipse Gemini 2.0.M02,并在应用程序上下文中使用占位符。例如,我需要将数据源 URL 设置为属性。我想使用 @Before
方法通过配置管理服务设置 PID 的配置。
由于应用程序上下文是在配置期间加载的,并且此时 PID 尚未配置(因为尚未调用 @Before
方法),因此我从 Spring 收到错误,该错误导致 PAX EXAM 中止当前测试的执行。
因此,在我的案例中,我无法通过 @Before
方法使用配置管理服务。
解决方案是使用 pax-exam-cm 模块,该模块允许在配置方法内与配置管理服务进行交互,如下所示:
@Configuration
public static Option[] config() {
return options(
junitBundles(),
/* PAX Logging */
mavenBundle("org.ops4j.pax.logging", "pax-logging-api", "1.7.2"),
mavenBundle("org.ops4j.pax.logging", "pax-logging-service", "1.7.2"),
/* Apache Felix Config Admin */
mavenBundle("org.apache.felix", "org.apache.felix.configadmin", "1.8.0"),
ConfigurationAdminOptions.newConfiguration("my.pid")
.put("prop1", "value1")
.put("prop2", "value2")
.asOption(),
/* Eclipse Gemini + dependencies */
mavenBundle().groupId("org.aopalliance").artifactId("com.springsource.org.aopalliance").versionAsInProject(),
mavenBundle().groupId("org.springframework").artifactId("org.springframework.aop").versionAsInProject(),
mavenBundle().groupId("org.springframework").artifactId("org.springframework.beans").versionAsInProject(),
mavenBundle().groupId("org.springframework").artifactId("org.springframework.context").versionAsInProject(),
mavenBundle().groupId("org.springframework").artifactId("org.springframework.core").versionAsInProject(),
mavenBundle("org.eclipse.gemini.blueprint", "gemini-blueprint-core", GEMINI_VERSION),
mavenBundle("org.eclipse.gemini.blueprint", "gemini-blueprint-extender", GEMINI_VERSION),
mavenBundle("org.eclipse.gemini.blueprint", "gemini-blueprint-io", GEMINI_VERSION),
/* Other bundles */
);
}
您还需要将 pax-exam-cm 依赖项添加到您的 POM(如果您使用 Maven):
<dependency>
<groupId>org.ops4j.pax.exam</groupId>
<artifactId>pax-exam-cm</artifactId>
<version>3.4.0</version>
<scope>test</scope>
</dependency>
关于java - PAX 考试 - @Before 方法未调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22130252/
我不知道为什么 PAX 总是杀死我的进程。平台是powerpc,操作系统是Linux。从内核日志中,我可以看到如下内容: PAX: From 147.128.23.67: execution atte
我正在尝试使用 pax-maven-build 构建我的 OSGI 包同时用 pax-exam 测试它.它提供了一些 bundle ,我可以使用以下 pax-exam 测试配置进行测试: @RunWi
我是Linux PaX用户,因此要调试任何二进制文件,我需要使用 paxctl 命令禁用保护标志(每个二进制文件)。PaX 通过随机化为用户提供针对缓冲区溢出攻击等的保护,但它也禁止有意义的调试。我可
我知道这有点具体,但我已经尝试了所有我能想到的方法。我正在使用 pax-exam 运行一些集成测试,日志记录应该使用 pax-logging。 这在直接运行 felix 容器时工作正常,但如果我通过
我正在尝试使用 PAX Exam 为 bundle 设置测试。 在用Configuration注释的方法中,我设置了在运行测试之前必须加载的不同包。但是,正在测试的 bundle 还希望通过配置管理服
我正在使用 Maven pax 插件来启动 equinox 容器,我的 osgi 包应该在其中部署。由于 pax runner 默认启动 felix 容器,我已经明确给出了启动 equinox 容器的
在内核中有 PaX 的 linux 中是否可能溢出缓冲区。我想通过使用正确的输入更改返回地址来利用可执行文件。我使用的是 Ubuntu 10.04,我使用 paxtest 对其进行了测试,但我不知道结
这是我琐碎的 Pax 考试测试: package ru.focusmedia.odp.server.datastore.itests; import static org.ops4j.pax.exam
我正在为我们的项目进行 PAX 集成测试,我在类加载方面遇到了一些问题。 我在 PAX(使用的 karaf 容器)中部署了几个包。 karaf 启动后,我可以看到我的包和服务已启动并处于事件状态。但是
我被要求在我们的 RCP 应用程序上实现 PAX 日志记录。基本上我都是按照这个tutorial . 正如您可能注意到的,它表示“当您运行 RCP 应用程序时,您应该看到 Pax ConfMan 将输
我正在尝试使用 PAX Exam 设置测试,如下所示: @ExamReactorStrategy(PerMethod.class) public class AbstractTest { @C
过去几天我一直在努力让 docker 容器在 Gentoo Hardened 上正确运行。 我花了几天才发现的第一个问题是由我自己的偏执引起的:我将 Docker 根目录放入的分区挂载了 nosuid
我在 DS 中编写了一个 @Component,它应该在多个实例中实例化和激活。为了测试我已经编写了一个 pax 考试测试,我启动了 karaf 并添加了 scr。一切工作正常,但是......直到测
我最近开始与大约 40 名其他开发人员一起从事一个项目。我们将 OSGi 与 Apache Felix 一起使用。我们使用 Maven 和 maven-pax-plugin 构建和部署。 OSGi 和
我正在尝试在新安装的 Apache Felix 容器中使用 pax 日志记录。安装了以下 bundle : lb START LEVEL 1 ID|State |Level|N
在pax-web(pax-web 6.0.3,jetty 9.3.14)的jetty.xml中,我定义了一个像这样的RewriteHandler:
我目前正在使用 tar 来提取文件... tail -n+$ARCHIVE_START_LINE $archiveFilename | tar -xzm -C / 我需要使用 pax 而不是 tar,
我有运行 android 的 Pax A920。 那么如何在java中使用打印服务呢? 最佳答案 我建议你使用 Neptune api。你可以google pax 920 neptune api de
我已经在一个包中编写了插件,并将它们作为 pax-logging-log4j2 的片段提供,这非常完美。现在我想要另一个片段有另一组附加器并执行相同的操作。两个包都注册为 pax-logging-lo
我使用 felix 和 pax-cdi 0.13 并焊接。我在 B 中有两个 bundle A。在 bundle A 中,我有 BundleTracker 和定制器,在 bundle B 中我有 CD
我是一名优秀的程序员,十分优秀!