gradle、arquillian、および bnd ツールを使用して、liferay 7 ポートレットの統合テストを作成しようとしています。
これは、テスト クラスでの私の展開方法です。
@Deployment
public static JavaArchive create() throws IllegalArgumentException, FileNotFoundException {
print("Eseguo il Deployment");
BndProjectBuilder bndProjectBuilder = ShrinkWrap.create(BndProjectBuilder.class);
bndProjectBuilder.setBndFile(new File("bnd-test.bnd"));
bndProjectBuilder.generateManifest(true);
JavaArchive j = bndProjectBuilder.as(JavaArchive.class);
return j;
}
これが bnd-test.bnd ファイルです。
Bundle-Name: Beep Col Portlet Test
Bundle-SymbolicName: it.polimi.metid.beep.beepcol.test
Bundle-Version: 1.0.0
Include-Resource:build/classes/main,META-INF/resources=src/main/resources/META-INF/resources
Require-Capability:\
osgi.extender;filter:="(&(osgi.extender=jsp.taglib)(uri=http://liferay.com/tld/ddm))",\
osgi.extender;filter:="(&(osgi.extender=jsp.taglib)(uri=http://liferay.com/tld/frontend))",\
osgi.extender;filter:="(&(osgi.extender=jsp.taglib)(uri=http://java.sun.com/portlet_2_0))",\
osgi.extender;filter:="(&(osgi.extender=jsp.taglib)(uri=http://liferay.com/tld/aui))",\
osgi.extender;filter:="(&(osgi.extender=jsp.taglib)(uri=http://liferay.com/tld/portlet))",\
osgi.extender;filter:="(&(osgi.extender=jsp.taglib)(uri=http://liferay.com/tld/theme))",\
osgi.extender;filter:="(&(osgi.extender=jsp.taglib)(uri=http://liferay.com/tld/ui))",\
osgi.ee;filter:="(&(osgi.ee=JavaSE)(version=1.8))"
-jsp: *.jsp,*.jspf
-plugin.bundle: com.liferay.ant.bnd.resource.bundle.ResourceBundleLoaderAnalyzerPlugin
-plugin.jsp: com.liferay.ant.bnd.jsp.JspAnalyzerPlugin
-plugin.sass: com.liferay.ant.bnd.sass.SassAnalyzerPlugin
-sass: *
-sources: true
-dsannotations: *
機能テストではこれは正常に機能しますが、いくつかの統合テストを実行してcom.liferay.portal:com.liferay.portal.test;version='1.0.0' のような外部ライブラリを使用しようとすると問題が発生し
ますこのライブラリのいくつかのクラスを次のように使用します。
@Test
public void prova() throws Exception {
Group g = GroupTestUtil.addGroup();
}
私はこの例外を受け取ります:
java.lang.NoClassDefFoundError: com/liferay/portal/kernel/test/util/GroupTestUtil
これは、BndProjectBuilder に依存関係の jar が含まれていないか、bnd ファイルの構成が間違っているためだと思います。
誰かがすでにこの問題に遭遇しましたか?