Как заполнить веб-приложение с исходными данными

Intel Thread Building Blocks также обеспечивает несколько rw_lock вариантов:

http://www.threadingbuildingblocks.org/

у Них есть spin_rw_mutex в течение очень коротких периодов конкуренции и queueing_rw_mutex в течение более длительных периодов конкуренции. Первый может использоваться в особенно производительности чувствительный код. Последний более сопоставим в производительности с обеспеченным Повышением. Поток или непосредственно использующий pthreads. Но профиль для проверки, какой является победой для схем доступа.

10
задан Pascal Thivent 30 April 2010 в 19:27
поделиться

3 ответа

РЕДАКТИРОВАТЬ : добавлена ​​ссылка на сообщение в блоге, показывающее, как тестировать Hibernate JPA с помощью Spring и DbUnit.

[...] Я хотел бы иметь сборку maven, которая создает базу данных из сущностей

Существует плагин maven hibernate3 с целью hibernate3: hbm2ddl , что может помочь. В сочетании с плагином maven sql должна быть возможность создать эту схему из сгенерированного DDL.

[...] затем заполняет исходные данные / данные словаря

Опять же, плагин maven sql здесь может справиться. Или, может быть, с DBUnit , который является еще одним элегантным решением (см. плагин maven dbunit ).

и запускать модульные и интеграционные тесты.

Я не уверен, что вы модульные тесты должны иметь доступ к базе данных, но для тестов интеграции проверьте DBUnit , как я сказал. Это действительно очень хороший инструмент, который позволяет вам настроить базу данных в известном состоянии, проверить таблицы на предмет ожидаемого содержимого после выполнения теста и вернуть базу данных в исходное состояние. См. Хороший пример Тестирование JPA Hibernate с помощью Spring и DbUnit .

Этот процесс должен быть полностью автоматизирован, чтобы поместить эту сборку на сервер CI (Hudson),

6
ответ дан 4 December 2019 в 02:50
поделиться

@ Дэвид, спасибо за ваш пост. Единственное разумное решение, которое я нашел для заполнения исходных данных, похоже на ваше - это вставка данных в тесты. В своем коде я даже не использую hibernate3-maven-plugin. Создание базы данных выполняется Spring в файле jpaContext.xml

<bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
<property name="jpaVendorAdapter">
  <bean
    class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter">
      <property name="showSql" value="true" />
      <property name="generateDdl" value="true" />
      <property name="databasePlatform" value="org.hibernate.dialect.HSQLDialect"/>
  </bean>
</property>
<property name="dataSource" ref="dataSource"/>

Как я уже писал, я использую org.springframework.test.jpa.AbstractJpaTests с переопределенным методом


  @Override
  protected String[] getConfigLocations() {
    return new String[]{
      "classpath:/jpaContext.xml"};
  }

Я думаю, это упростит ваше решение . Я все еще ищу лучшее разрешение для создания исходных данных. Создание объектов с большим количеством взаимосвязей вручную является обременительным.

1
ответ дан 4 December 2019 в 02:50
поделиться

Я решил проблему, почти идентичную вашей, расширив

org.springframework.test.context.junit4.AbstractTransactionalJUnit4SpringContextTests

Затем я использовал hibernate3-maven-plugin для заполнения базы данных (Я использовал hsqldb) во время тестирования:

      <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>hibernate3-maven-plugin</artifactId>
            <version>2.1</version>
            <configuration>
                <components>
                    <component>
                        <name>hbm2ddl</name>
                        <implementation>jpaconfiguration</implementation>
                    </component>
                </components>
                <componentProperties>
                    <drop>true</drop>
                    <jdk5>true</jdk5>
                    <propertyfile>target/classes/jdbc.properties</propertyfile>
                    <skip>${maven.test.skip}</skip>
                </componentProperties>
            </configuration>
            <executions>
                <execution>
                    <phase>process-test-resources</phase>
                    <goals>
                        <goal>hbm2ddl</goal>
                    </goals>
                </execution>
            </executions>
            <dependencies>
                <dependency>
                    <groupId>${jdbc.groupId}</groupId>
                    <artifactId>${jdbc.artifactId}</artifactId>
                    <version>${jdbc.version}</version>
                </dependency>
            </dependencies>
        </plugin>

Я разместил простой проект maven в Google Code, чтобы продемонстрировать эту технику.

0
ответ дан 4 December 2019 в 02:50
поделиться
Другие вопросы по тегам:

Похожие вопросы: