AdobeCQ5.4内で実行されるいくつかの単体テストを作成したいと思います。私はCQ内でテストするために、この記事で説明されていることを行っています。
ただし、Javaコードで単体テストクラスを作成した後、org.junit名前空間を解決できないため、CRXDE内でコンパイルされません。説明したように(Apache Sling JUnit Core)FelixにJUnitバンドルをインストールしてアクティブ化しましたが、このアクティブなFelixバンドルをCRXDEで見つけるには、他に何かする必要があると思います。接続している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
以下のこのサンプルユニットテストコードでは、最後の3つのインポートステートメントは「解決できません」。
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内でコンパイルさせるには、何をする必要がありますか?