Ich versuche Integrationstests für liveray 7 Portlets mit Gradle, Arquillian und bnd-Tool zu schreiben.
Dies ist meine Bereitstellungsmethode in der Testklasse:Gradle bndProjectBuilder Test
@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;
}
Und das ist die BND-test.bnd Datei:
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: *
Mit funktionellen Tests dies funktioniert gut, aber das Problem kommt, wenn Ich versuche, einige Integration Tests zu tun und versuchen, externe Bibliotheken wie
zu verwenden com.liferay.portal: com.liferay.portal.test; version = '1.0.0' Wenn ich goi bin ng einige Klassen dieser Bibliothek wie folgt zu verwenden:
@Test
public void prova() throws Exception {
Group g = GroupTestUtil.addGroup();
}
ich diese Ausnahme erhalten:
java.lang.NoClassDefFoundError: com/liferay/portal/kernel/test/util/GroupTestUtil
Ich denke, das ist, weil die BndProjectBuilder die Abhängigkeiten Glas nicht enthalten, oder ich schlecht BND-Datei konfigurieren .
Jemand hat dieses Problem bereits festgestellt?
Könnten Sie bitte Ihren Build veröffentlichen. Gradle und Ihre Importe in der Testklasse? Ich habe Probleme, Tests mit Gradle zu starten. Meine Injektionen sind immer Null. Sie können ein Beispielmodul finden, das ich in meiner liferay-Forumfrage laufen lasse: https://web.liferay.com/community/forums/-/message_boards/view_message/85975754 – DKM