我想编写一些在 Adobe CQ 5.4 中运行的单元测试。我正在做本文中描述的在 CQ 中进行测试的内容:
但是,在我的 Java 代码中创建单元测试类之后,它不会在 CRXDE 中编译,因为它无法解析 org.junit 命名空间。我按照描述(Apache Sling JUnit Core)在 Felix 中安装并激活了 JUnit 包,但我猜我还需要做一些其他事情才能在 CRXDE 中找到这个活动的 Felix 包。我连接的 CQ5 实例中的 Felix 包显示了这些导出的包:
junit.framework,version=4.8.2
org.apache.sling.junit,version=1.0.7.SNAPSHOT
org.apache.sling.junit.annotations,version=1.0.7.SNAPSHOT
org.junit,version=4.8.2
org.junit.matchers,version=4.8.2
org.junit.rules,version=4.8.2
org.junit.runner,version=4.8.2
org.junit.runner.manipulation,version=4.8.2
org.junit.runner.notification,version=4.8.2
org.junit.runners,version=4.8.2
org.junit.runners.model,version=4.8.2
在下面的这个示例单元测试代码中,最后三个导入语句“无法解析”。
import org.apache.sling.api.resource.*;
import org.junit.*;
import org.junit.runner.*;
import org.apache.sling.junit.annotations.*;
@RunWith(SlingAnnotationsTestRunner.class)
public class MyUnitTest {
public ResourceResolver getResourceResolver() {
try {
return getResourceResolverFactory().
getAdministrativeResourceResolver(null);
} catch (LoginException e) {
fail(e.toString());
}
return null;
}
}
我的新手理解是,安装在 Felix 中的 OSGI 包应该可供我使用 CRXDE 在我的 Java 类中引用,但我安装的 JUnit 包没有发生这种情况。为什么不?我需要做什么才能让CRXDE找到 OSGI 包引用并在 CRXDE 中编译?