Я хочу написать несколько модульных тестов, которые запускаются в Adobe CQ 5.4. Я делаю то, что описано в этой статье для тестирования в рамках CQ:
Однако после того, как я создам класс модульного теста в своем Java-коде, он не будет компилироваться в CRXDE, поскольку не может разрешать пространства имен org.junit. Я установил и активировал пакет JUnit в Felix, как описано (Apache Sling JUnit Core), но я предполагаю, что мне нужно сделать что-то еще, чтобы этот активный пакет Felix можно было найти в CRXDE. Пакет Felix в экземпляре CQ5, к которому я подключен, показывает следующие экспортированные пакеты:
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;
}
}
Я начинаю понимать, что пакет OSGI, установленный в Felix, должен быть доступен для ссылки в моих классах Java с использованием CRXDE, но этого не происходит для пакета JUnit, который я установил. Почему нет? Что мне нужно сделать, чтобы заставить CRXDE найти ссылку на пакет OSGI и скомпилировать его в CRXDE?