Искам да напиша някои модулни тестове, които се изпълняват в рамките на 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?