Я хочу проверить некоторые классы из проекта модуля alfresco (AMP). Проект основан на Maven 3.Alfresco Maven Junit test
Я совершенно новой для Alfresco и Maven, поэтому, пожалуйста, будьте терпеливы ... :) папка SRC/главная/Java включает в себя все классы модуля. Теперь я создал тестовый класс в src/test/java с тем же пакетом, что и класс, который я хочу проверить. Класс test расширяет класс BaseAlfrescoTestCase.
Я добавил JUnit 4.11 в зависимости от POM.
Выполнение mvn clean integration-test -P webapp
Я получил исключение, что приложение-context.xml не было найдено:
Тесты запуска: 1, Отказы: 0, ошибки: 1, пропущено: 0, Время, прошедшее: 0,189 сек < < < FAILURE! testCreateinitialSpaces (AlfresoTest) Истекшее время: 0,188 сек. < < < ОШИБКА! org.springframework.beans.factory.BeanDefinitionStoreException: IOException синтаксический разбор XML-документа из ресурса пути класса [alfresco/application-context.xml]; Вложенное исключение - это java.io.FileNotFoundException: ресурс пути класса [alfresco/application-context.xml] не может быть открыт, поскольку он не существует на org.springframework.core.io.ClassPathResource.getInputStream (ClassPathResource.java:158) на org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions (XmlBeanDefinitionReader.java:328) в org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions (XmlBeanDefinitionReader.java:302) в org.springframework.beans .factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions (AbstractBeanDefinitionReader.java:143) в org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions (AbstractBeanDefinitionReader.java:178) в org.springframework.beans.factory.support.AbstractBean DefinitionReader.loadBeanDefinitions (AbstractBeanDefinitionReader.java:149) на org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions (AbstractBeanDefinitionReader.java:212) в org.springframework.context.support.AbstractXmlApplicationContext.loadBeanDefinitions (AbstractXmlApplicationContext.java: 126) на org.springframework.context.support.AbstractXmlApplicationContext.loadBeanDefinitions (AbstractXmlApplicationContext.java:92) в org.springframework.context.support.AbstractRefreshableApplicationContext.refreshBeanFactory (AbstractRefreshableApplicationContext.java:130) в org.springframework.context. support.AbstractApplicationContext.obtainFreshBeanFactory (AbstractApplicationContext.java:458) at org.springframework.context.support.AbstractApplicationContext. обновить (AbstractApplicationContext.java:388) на org.springframework.context.support.ClassPathXmlApplicationContext. (ClassPathXmlApplicationContext.java:139) на org.springframework.context.support.ClassPathXmlApplicationContext. (ClassPathXmlApplicationContext.java:93) в орг. alfresco.util.BaseApplicationContextHelper.getApplicationContext (BaseApplicationContextHelper.java:67) на org.alfresco.util.ApplicationContextHelper.getApplicationContext (ApplicationContextHelper.java:46) в org.alfresco.util.BaseAlfrescoTestCase.setUpContext (BaseAlfrescoTestCase.java:84) на org.alfresco.util.BaseAlfrescoTestCase.setUp (BaseAlfrescoTestCase.java:102)
По-видимому, метод BaseAlfrescoTestCase.setUp не может получить введенные свойства (в качестве serviceRegistry и т. Д.).) из Spring Framework.
Приложение-context.xml на самом деле не существует, но, к сожалению, я не знаю, как настроить правильный application-context.xml для целей тестирования.
Я думал, что приложение-контекст предоставляется причалом? pom.xml был первоначально настроен коллегой, и сейчас он недоступен. Jetty начинается правильно, когда я пропуск тестов: mvn clean -Dmaven.test.skip=true integration-test -P webapp
Я искал много, но я не нашел много учебников для Alfresco в сочетании с Maven и JUnit. Все учебники, я нашел не работает для меня ... Спасибо за вашу помощь
EDIT: здесь все зависимости в моем pom.xml:
<dependencies>
<dependency>
<groupId>org.alfresco</groupId>
<artifactId>alfresco-core</artifactId>
<version>4.0.b</version>
<scope>provided</scope>
<classifier>community</classifier>
</dependency>
<dependency>
<groupId>org.alfresco</groupId>
<artifactId>alfresco-repository</artifactId>
<version>4.2.c</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.alfresco</groupId>
<artifactId>alfresco-datamodel</artifactId>
<version>4.2.c</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.alfresco</groupId>
<artifactId>alfresco-web-client</artifactId>
<version>4.2.c</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>3.0.5.RELEASE</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
<version>3.0.5.RELEASE</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.opensymphony.quartz</groupId>
<artifactId>com.springsource.org.quartz</artifactId>
<version>1.6.2</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.springframework.extensions.surf</groupId>
<artifactId>spring-webscripts</artifactId>
<version>1.0.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.log4j</groupId>
<artifactId>com.springsource.org.apache.log4j</artifactId>
<version>1.2.16</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.transaction</groupId>
<artifactId>jta</artifactId>
<version>1.0.1b</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.mail</groupId>
<artifactId>com.springsource.javax.mail</artifactId>
<version>1.4.1</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
</dependencies>
EDIT:
after adding application-context.xml, application-context-core.xml and a fake-context folder to resource folder in the maven project this error occurs:
testCreateinitialSpaces(AlfrescoTest) Time elapsed: 0.56 sec <<< ERROR!
org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'ServiceRegistry' is defined
at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeanDefinition(DefaultListableBeanFactory.java:527)
at org.springframework.beans.factory.support.AbstractBeanFactory.getMergedLocalBeanDefinition(AbstractBeanFactory.java:1083)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:274)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:190)
at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1075)
at org.alfresco.util.BaseAlfrescoTestCase.setUp(BaseAlfrescoTestCase.java:105)
Очевидно, что ServiceRegistry Bean недоступен ?!
EDIT: Я скопировал полную папку Alfresco от <WAR>/WEB-INF/classes/alfresco
до src/test/resources
. На самом деле нет XML-файл не больше не хватает, но тест не пройден с CannotLoadBeanClassException:
org.springframework.beans.factory.CannotLoadBeanClassException: Не удается найти класс [org.alfresco.repo.cache.InternalEhCacheManagerFactoryBean] для фасоли с именем ' internalEHCacheManager ', определенный в ресурсе пути к ключу [alfresco/cache-context.xml]; вложенное исключение составляет java.lang.ClassNotFoundException: org.alfresco.repo.cache.InternalEhCacheManagerFactoryBean в java.net.URLClassLoader $ 1.Run (URLClassLoader.java:202) на java.security.AccessController.doPrivileged (Native Method) в java.net.URLClassLoader.findClass (URLClassLoader.java:190) в java.lang.ClassLoader.loadClass (ClassLoader.java:306) at sun.misc.Launcher $ AppClassLoader.loadClass (Launcher.java:301) at java.lang.ClassLoader.loadClass (ClassLoader.java:247) at org.springframework.util.ClassUtils.forName (ClassUtils.java:257) at org.springframework.beans.factory.support.AbstractBeanDefinition.resolveBeanClass (AbstractBeanDefinition. java: 408) at org.springframework.beans.factory.support .AbstractBeanFactory.doResolveBeanClass (AbstractBeanFactory.java:1271) на org.springframework.beans.factory.support.AbstractBeanFactory.resolveBeanClass (AbstractBeanFactory.java:1242) в org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.predictBeanType (AbstractAutowireCapableBeanFactory .java: 576) на org.springframework.beans.factory.support.AbstractBeanFactory.isFactoryBean (AbstractBeanFactory.java:1319) на org.springframework.beans.factory.support.AbstractBeanFactory.isFactoryBean (AbstractBeanFactory.java:885) at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons (DefaultListableBeanFactory.java:562) at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization (AbstractApplicationContext .java: 895) на org.springframework.context.support.AbstractApplicationContext.refresh (AbstractApplicationContext.java:425) в org.springframework.context.support.ClassPathXmlApplicationContext (ClassPathXmlApplicationContext.java:139) на org.springframework.. context.support.ClassPathXmlApplicationContext. (ClassPathXmlApplicationContext.Java: 93) на org.alfresco.util.BaseApplicationContextHelper.getApplicationContext (BaseApplicationContextHelper.java:67) на org.alfresco.util.ApplicationContextHelper.getApplicationContext (ApplicationContextHelper.java:46) на org.alfresco.util.BaseAlfrescoTestCase. setUpContext (BaseAlfrescoTestCase.java:84) на org.alfresco.util.BaseAlfrescoTestCase.setUp (BaseAlfrescoTestCase.java:102)
Мое первое предположение заключается в том, что вы не включили все необходимые вам фрагменты Alfresco. Можете ли вы рассказать нам, на какие части Alfresco вы зависели в своем пом и в какой версии? – Gagravarr
Спасибо за ваш ответ. извините, все зависимости слишком длинны для комментария ... см. редактирование на моем сообщении – caldicot
У вас, кажется, есть версия Alfresco там - некоторые 4.0.d и некоторые 3.4.e. Вы, наверное, хотите исправить это в первую очередь! – Gagravarr