Я пытаюсь написать интеграционные тесты для портлетов liferay 7 с помощью инструмента gradle, arquillian и bnd.
Это мой метод развертывания в тестовом классе:Тест Gradle bndProjectBuilder
@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;
}
И это файл БНД-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'
Когда я являюсь goi нг использовать некоторые классы этой библиотеки, как это:
@Test
public void prova() throws Exception {
Group g = GroupTestUtil.addGroup();
}
Я получаю это исключение:
java.lang.NoClassDefFoundError: com/liferay/portal/kernel/test/util/GroupTestUtil
Я думаю, что это потому, что BndProjectBuilder не включает зависимости баночки, или я плохо настроить BND файл ,
Кто-то уже столкнулся с этой проблемой?
Не могли бы вы опубликовать сборку. gradle и ваш импорт на тестовом классе? У меня есть некоторые проблемы с получением тестов и с градиентом. Мои инъекции всегда равны нулю. Вы можете найти примерный модуль, который я пытаюсь запустить на моем форуме форума: https://web.liferay.com/community/forums/-/message_boards/view_message/85975754 – DKM