0

Весна новичок здесь. Попытка объединить различные онлайн-уроки весны в один рабочий проект. Началось с учебника весны mvc, описанного в этом link.Не могу получить некоторые модульные тесты для запуска весеннего приложения

Теперь я пытаюсь объединить this интерактивное учебное пособие по данным весны jpa в вышеупомянутый проект. Как вы можете видеть на прилагаемом рисунке, я добавил все необходимые файлы проекта (файлы src, test, .xml и т. Д.).

Моя проблема в том, что когда я делаю mvn-пакет (это то, что я использовал для создания и запуска тестов), новый набор тестов для второго проекта не выполняется.. Интересно, почему! Не отдавая всех источников, я покажу некоторые из наиболее важных конфигурационных (.xml) файлов.

Изображение, показывающее новые файлы добавлены, существующие файлы, а также краткое описание вопроса: enter image description here Примечание: К сожалению, но некоторые из XML мета-данных, удаляются с помощью StackOverflow. В основном это теги заголовков, которые импортируют определения xml и, следовательно, не так важны.

  1. orm.xml (добавлено к весенне-данных JPA упражнения)

    <?xml version="1.0" encoding="UTF-8"?> 
    

    <persistence-unit-metadata> 
        <persistence-unit-defaults> 
         <entity-listeners> 
          <entity-listener class="org.springframework.data.jpa.domain.support.AuditingEntityListener" /> 
         </entity-listeners> 
        </persistence-unit-defaults> 
    </persistence-unit-metadata> 
    
    <named-query name="Person.findByName"> 
        <query>select p from Person p where p.firstName = :firstName AND p.lastName = :lastName</query> 
    </named-query> 
    

  2. persistence.xml (добавлено к весенне-данных-JPA физические упражнения)

    <?xml version="1.0" encoding="UTF-8"?> 
    

    http://java.sun.com/xml/ns/persistence/persistence_2_1.xsd» версия = "2.1">

    <persistence-unit name="hsql"> 
        <provider>org.hibernate.ejb.HibernatePersistence</provider> 
    
        <properties> 
         <property name="hibernate.dialect" value="org.hibernate.dialect.HSQLDialect" /> 
         <property name="hibernate.show_sql" value="true" /> 
         <property name="hibernate.hbm2ddl.auto" value="validate" /> 
         <property name="hibernate.ejb.naming_strategy" value="org.hibernate.cfg.ImprovedNamingStrategy"/> 
         <property name="hibernate.cache.provider_class" value="org.hibernate.cache.HashtableCacheProvider" /> 
         <property name="jadira.usertype.autoRegisterUserTypes" value="true" /> 
         <property name="jadira.usertype.databaseZone" value="jvm" /> 
        </properties> 
    </persistence-unit> 
    

  3. корня context.xml (изначально для весенне-MVC-учебник)

    http://www.springframework.org/schema/beans/spring-beans-3.0.xsd ">

    <!-- Root Context: defines shared resources visible to all other web components --> 
    
    <!-- 
        CSRF protection. Here we only include the CsrfFilter instead of all of Spring Security. 
        See http://docs.spring.io/spring-security/site/docs/3.2.x/reference/htmlsingle/#csrf for more information on 
        Spring Security's CSRF protection 
    --> 
    <bean id="csrfFilter" class="org.springframework.security.web.csrf.CsrfFilter"> 
        <constructor-arg> 
         <bean class="org.springframework.security.web.csrf.HttpSessionCsrfTokenRepository"/> 
        </constructor-arg> 
    </bean> 
    <!-- 
        Provides automatic CSRF token inclusion when using Spring MVC Form tags or Thymeleaf. See 
        http://localhost:8080/#forms and form.jsp for examples 
    --> 
    <bean id="requestDataValueProcessor" class="org.springframework.security.web.servlet.support.csrf.CsrfRequestDataValueProcessor"/> 
    

4.) controllers.xml, 5.) сервлет-context.xml файлы только стандартные файлы, которые отображают диспетчер путь, определяют и инстанцирование диспетчера-сервлет, и другие бобы, которые уже были в код spring-mvc-tutorial. Я считаю, что они действительно не имеют ничего общего с проблемой, описанной в этом билете.

Вот тестовый файл, который не выполняет, и я хотел бы иметь команду:

@RunWith(SpringJUnit4ClassRunner.class) 
@ContextConfiguration 
@TransactionConfiguration 
@Transactional 
public class PersonRepositoryTest { 

    final Logger logger = LoggerFactory.getLogger(PersonRepositoryTest.class); 

    private final static Integer FIRST_ID = Integer.valueOf(1); 
    private final static Integer SECOND_ID = Integer.valueOf(2); 

    private final static int EXPECTED_COUNT = 3; 

    private final static String FIRST_NAME = "Joe"; 
    private final static String LAST_NAME = "Smith"; 

    private final static int EXPECTED_ADDRESS_COUNT = 1; 
    private final static String ADDR = "1060 West Addison St."; 
    private final static String CITY = "Chicago"; 
    private final static String STATE = "IL"; 
    private final static String ZIP_POSTAL = "60613"; 
    private final static String COUNTRY = "USA"; 

    @Autowired 
    private PersonRepository personRepository; 

    @Autowired 
    private ProfessionalRepository professionalRepository; 

    @Test 
    public void testFindOne() { 
     Person person = personRepository.findOne(FIRST_ID); 

     testPersonOne(person); 
    } 
    ... 
    .. //more tests 

Любая помощь очень ценится!

<?xml version="1.0" encoding="UTF-8"?> 
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 
    <groupId>org.springframework.samples</groupId> 
    <artifactId>spring-mvc-showcase</artifactId> 
    <name>spring-mvc-showcase</name> 
    <packaging>war</packaging> 
    <version>1.0.0-BUILD-SNAPSHOT</version> 
    <properties> 
     <java-version>1.7</java-version> 
     <org.springframework-version>4.2.2.RELEASE</org.springframework-version> 
     <org.springframework.security-version>4.0.1.RELEASE</org.springframework.security-version> 
     <org.aspectj-version>1.8.1</org.aspectj-version> 
     <org.slf4j-version>1.7.12</org.slf4j-version> 
    </properties> 
    <dependencies> 
     <!-- Spring --> 
     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-context</artifactId> 
      <version>${org.springframework-version}</version> 
      <exclusions> 
       <!-- Exclude Commons Logging in favor of SLF4j --> 
       <exclusion> 
        <groupId>commons-logging</groupId> 
        <artifactId>commons-logging</artifactId> 
       </exclusion> 
      </exclusions> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-webmvc</artifactId> 
      <version>${org.springframework-version}</version> 
     </dependency> 
     <!-- AspectJ --> 
     <dependency> 
      <groupId>org.aspectj</groupId> 
      <artifactId>aspectjrt</artifactId> 
      <version>${org.aspectj-version}</version> 
     </dependency> 

     <!-- Logging --> 
     <dependency> 
      <groupId>org.slf4j</groupId> 
      <artifactId>slf4j-api</artifactId> 
      <version>${org.slf4j-version}</version> 
     </dependency> 
     <dependency> 
      <groupId>org.slf4j</groupId> 
      <artifactId>jcl-over-slf4j</artifactId> 
      <version>${org.slf4j-version}</version> 
      <scope>runtime</scope> 
     </dependency> 
     <dependency> 
      <groupId>org.slf4j</groupId> 
      <artifactId>slf4j-log4j12</artifactId> 
      <version>${org.slf4j-version}</version> 
      <scope>runtime</scope> 
     </dependency> 
     <dependency> 
      <groupId>log4j</groupId> 
      <artifactId>log4j</artifactId> 
      <version>1.2.16</version> 
      <scope>runtime</scope> 
     </dependency> 

     <!-- @Inject --> 
     <dependency> 
      <groupId>javax.inject</groupId> 
      <artifactId>javax.inject</artifactId> 
      <version>1</version> 
     </dependency> 

     <!-- Servlet --> 
     <dependency> 
      <groupId>org.apache.tomcat</groupId> 
      <artifactId>tomcat-servlet-api</artifactId> 
      <version>7.0.30</version> 
      <scope>provided</scope> 
     </dependency> 
     <dependency> 
      <groupId>javax.servlet.jsp</groupId> 
      <artifactId>jsp-api</artifactId> 
      <version>2.1</version> 
      <scope>provided</scope> 
     </dependency> 
     <dependency> 
      <groupId>javax.servlet.jsp.jstl</groupId> 
      <artifactId>jstl-api</artifactId> 
      <version>1.2</version> 
      <exclusions> 
       <exclusion> 
        <groupId>javax.servlet</groupId> 
        <artifactId>servlet-api</artifactId> 
       </exclusion> 
      </exclusions> 
     </dependency> 
     <dependency> 
      <groupId>org.glassfish.web</groupId> 
      <artifactId>jstl-impl</artifactId> 
      <version>1.2</version> 
      <exclusions> 
       <exclusion> 
        <groupId>javax.servlet</groupId> 
        <artifactId>servlet-api</artifactId> 
       </exclusion> 
      </exclusions> 
     </dependency> 

     <!-- Jackson JSON Processor --> 
     <dependency> 
      <groupId>com.fasterxml.jackson.core</groupId> 
      <artifactId>jackson-databind</artifactId> 
      <version>2.5.3</version> 
     </dependency> 

     <!-- Rome Atom+RSS --> 
     <dependency> 
      <groupId>com.rometools</groupId> 
      <artifactId>rome</artifactId> 
      <version>1.5.0</version> 
     </dependency> 

     <!-- JSR 303 with Hibernate Validator --> 
     <dependency> 
      <groupId>javax.validation</groupId> 
      <artifactId>validation-api</artifactId> 
      <version>1.0.0.GA</version> 
     </dependency> 
     <dependency> 
      <groupId>org.hibernate</groupId> 
      <artifactId>hibernate-validator</artifactId> 
      <version>4.1.0.Final</version> 
     </dependency> 

     <!-- Joda Time Library --> 
     <dependency> 
      <groupId>joda-time</groupId> 
      <artifactId>joda-time</artifactId> 
      <version>2.3</version> 
     </dependency> 

     <!-- File Upload --> 
     <dependency> 
      <groupId>commons-fileupload</groupId> 
      <artifactId>commons-fileupload</artifactId> 
      <version>1.2.2</version> 
     </dependency> 
     <dependency> 
      <groupId>commons-io</groupId> 
      <artifactId>commons-io</artifactId> 
      <version>2.0.1</version> 
     </dependency> 

     <!-- Security (used for CSRF protection only) --> 
     <dependency> 
      <groupId>org.springframework.security</groupId> 
      <artifactId>spring-security-web</artifactId> 
      <version>${org.springframework.security-version}</version> 
     </dependency> 

     <!-- Test --> 
     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-test</artifactId> 
      <version>${org.springframework-version}</version> 
      <scope>test</scope> 
     </dependency> 
     <dependency> 
      <groupId>junit</groupId> 
      <artifactId>junit</artifactId> 
      <version>4.11</version> 
      <scope>test</scope> 
     </dependency> 
     <dependency> 
      <groupId>xmlunit</groupId> 
      <artifactId>xmlunit</artifactId> 
      <version>1.2</version> 
      <scope>test</scope> 
     </dependency> 
     <dependency> 
      <groupId>com.jayway.jsonpath</groupId> 
      <artifactId>json-path</artifactId> 
      <version>0.8.1</version> 
      <scope>test</scope> 
     </dependency> 
     <dependency> 
      <groupId>org.hamcrest</groupId> 
      <artifactId>hamcrest-library</artifactId> 
      <version>1.3</version> 
      <scope>test</scope> 
     </dependency> 

     <!--Additional POM for spring-data-jpa trial --> 
     <dependency> 
      <groupId>javax.persistence</groupId> 
      <artifactId>persistence-api</artifactId> 
      <version>1.0.2</version> 
     </dependency> 

     <dependency> 
      <groupId>org.springframework.data</groupId> 
      <artifactId>spring-data-jpa</artifactId> 
      <version>1.9.1.RELEASE</version> 
     </dependency> 

    </dependencies> 
    <repositories> 
     <!-- For testing against latest Spring snapshots --> 
     <repository> 
      <id>org.springframework.maven.snapshot</id> 
      <name>Spring Maven Snapshot Repository</name> 
      <url>http://repo.spring.io/snapshot</url> 
      <releases><enabled>false</enabled></releases> 
      <snapshots><enabled>true</enabled></snapshots> 
     </repository> 
     <!-- For developing against latest Spring milestones --> 
     <repository> 
      <id>org.springframework.maven.milestone</id> 
      <name>Spring Maven Milestone Repository</name> 
      <url>http://repo.spring.io/milestone</url> 
      <snapshots><enabled>false</enabled></snapshots> 
     </repository> 
    </repositories> 
    <build> 
     <finalName>${project.artifactId}</finalName> 
     <plugins> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-compiler-plugin</artifactId> 
       <version>2.3.2</version> 
       <configuration> 
        <source>${java-version}</source> 
        <target>${java-version}</target> 
       </configuration> 
      </plugin> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-surefire-plugin</artifactId> 
       <version>2.12</version> 
       <configuration> 
        <includes> 
         <include>**/*Tests.java</include> 
        </includes> 
        <excludes> 
         <exclude>**/Abstract*.java</exclude> 
        </excludes> 
        <junitArtifactName>junit:junit</junitArtifactName> 
        <argLine>-Xmx512m</argLine> 
       </configuration> 
      </plugin> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-dependency-plugin</artifactId> 
       <executions> 
        <execution> 
         <id>install</id> 
         <phase>install</phase> 
         <goals> 
          <goal>sources</goal> 
         </goals> 
        </execution> 
       </executions> 
      </plugin> 
      <plugin> 
       <groupId>org.codehaus.mojo</groupId> 
       <artifactId>aspectj-maven-plugin</artifactId> 
       <!-- Have to use version 1.2 since version 1.3 does not appear to work with ITDs --> 
       <version>1.2</version> 
       <dependencies> 
        <!-- You must use Maven 2.0.9 or above or these are ignored (see MNG-2972) --> 
        <dependency> 
         <groupId>org.aspectj</groupId> 
         <artifactId>aspectjrt</artifactId> 
         <version>${org.aspectj-version}</version> 
        </dependency> 
        <dependency> 
         <groupId>org.aspectj</groupId> 
         <artifactId>aspectjtools</artifactId> 
         <version>${org.aspectj-version}</version> 
        </dependency> 
       </dependencies> 
       <executions> 
        <execution> 
         <goals> 
          <goal>compile</goal> 
          <goal>test-compile</goal> 
         </goals> 
        </execution> 
       </executions> 
       <configuration> 
        <outxml>true</outxml> 
        <source>${java-version}</source> 
        <target>${java-version}</target> 
       </configuration> 
      </plugin> 
      <plugin> 
       <groupId>org.apache.tomcat.maven</groupId> 
       <artifactId>tomcat7-maven-plugin</artifactId> 
       <version>2.2</version> 
      </plugin> 
      <plugin> 
       <groupId>org.eclipse.jetty</groupId> 
       <artifactId>jetty-maven-plugin</artifactId> 
       <version>9.0.6.v20130930</version> 
       <configuration> 
        <webApp> 
         <contextPath>/${project.artifactId}</contextPath> 
        </webApp> 
       </configuration> 
      </plugin> 
     </plugins> 
    </build> 
</project> 
+0

Выполнение тестовых классов во время фазы сборки maven не имеет ничего общего с конфигурацией API устойчивости или конфигурации фасоли. Пожалуйста, опубликуйте содержимое файла POM.xml. –

+0

Также заметил, что это может быть из-за вашей структуры проекта. Я считаю, что ваш базовый пакет - «org.springframework», в котором находится ваша application.java, и для сущности JPA ваша структура пакета - org.springbyexample.orm.entity. В этом случае весенняя загрузка не будет проверять все пакеты. Включите JPA вещи внутри пакета «org.springframework.entities» и «org.springframework.repositories», затем попробуйте один раз. –

+0

Я изменил имя корня обоих пакетов на com.apil.springapp ('root-pkg'). Следовательно, теперь все живет под «root-pkg». Запуск пакета mvn по-прежнему выполняется только в 84 модульных тестах под /test/'root-pkg'/samples.mvc, /test/'root-pkg'/web.app.user, но не под/test/'root-pkg'/ОРМ. Любая идея, что происходит? Благодаря! –

ответ

1

Так что в вашем ПОМ вы испытываете

enter image description here

и класс, который вы не говоря выполнение заканчивается только Test.java.

Так переименовывать PersonRepositoryTest.java к PersonRepositoryTests.java и повторите попытку.

+0

Уверен, что сработало, спасибо! И после того, как я прокручивал файлы контекста примерно на час, я все еще не там. Слишком много ошибок и понятий, которые нужно принять сразу. Подумайте, я возьму более постепенный и структурированный подход. –

+0

Лучше использовать весенний ботинок. Это помогает ускорить разработку и упростить настройку, и не нужно беспокоиться о зависимостях, так как это позаботится обо всех этих проблемах. –

+0

Несомненно. Это уже делалось. Но я понял, что теперь я не вижу (или не нуждаюсь) конфигураций для большого количества файлов с фасолью, которые я видел бы в других приложениях, отличных от springboot. Примеры: dataSource, entityManagerFactory, JpaTransactionManager и т. Д. Для работы с data-jpa. В конечном счете, выгодно (или нет), по вашему мнению, быть скрытым от этих деталей? –

 Смежные вопросы

  • Нет связанных вопросов^_^