2016-01-16 4 views
-1

Есть ли способ запустить небольшой MySql во время тестов интеграции maven? Все, что я нашел, это libmysqld, но, похоже, он запускается внутри клиентского приложения. Может быть, есть способ или оболочка, чтобы запустить его как сервер litle? Или другими способами/реализацией для запуска легкого сервера Mysql?Как запустить встроенный сервер mysql через maven?

Примечание

Существует также mysql-je библиотека, выглядит хорошо, но слишком старый (2006).

+0

Я могу представить, что есть причины использовать MySQL во время тестов интеграции, но что это такое? Потому что мой первый вопрос - почему бы не использовать базу данных в памяти. – hotzst

+0

Хорошо и что использовать базу данных inmemory? Это хороший момент, но в случае разных db у меня есть другой sql-диалект. Это первое. Второй вопрос заключается не в запуске всей MySql, а в литх-версии, которая может быть (в хорошем случае) inmemory, конечно, но поддерживать все (или наиболее используемые) функции MySql. (по особенностям я в основном подразумеваю синтаксис sql, не все функции сервера db) – Cherry

ответ

2

Как упоминалось в @hotzst, встроенная база данных, например h2 или hsqldb, была бы очень полезной.

Но если вам действительно нужно, вы можете использовать https://github.com/rhuss/docker-maven-plugin для запуска любой части программного обеспечения в процессе сборки maven.

Единственным предварительным условием будет работающий докер или установка докерной машины на вашем компьютере.

Я использую следующий фрагмент кода, чтобы начать MongoDB при выполнении интеграционного теста

<plugin> 

    <groupId>org.jolokia</groupId> 
    <artifactId>docker-maven-plugin</artifactId> 
    <version>0.13.7</version> 

    <configuration>         
     <logDate>default</logDate> 
     <autoPull>true</autoPull> 
     <images> 
      <image> 
       <alias>mysql</alias> 
       <name>mysql:5.7.10</name> 
       <run> 
        <ports> 
         <port>3306:3306</port> 
        </ports> 
        <log> 
         <prefix>Mongo</prefix> 
         <color>yellow</color> 
        </log> 
       </run> 
      </image> 
     </images> 
    </configuration> 

    <executions> 
     <execution> 
      <id>start</id> 
      <phase>pre-integration-test</phase> 
      <goals> 
       <goal>build</goal> 
       <goal>start</goal> 
      </goals> 
     </execution> 
     <execution> 
      <id>stop</id> 
      <phase>post-integration-test</phase> 
      <goals> 
       <goal>stop</goal> 
      </goals> 
     </execution> 

    </executions> 
</plugin> 

вы можете начать все интеграционные тесты и согласно фазы Maven с mvn:verify. При первом запуске этого плагина может потребоваться некоторое время.

+0

Но у них разные диалекты sql, нет? – Cherry

+0

Обе базы данных предлагают * диалектную совместимость * с другими базами данных. В Интернете вы можете легко найти [дальнейшие примечания] (http://www.h2database.com/html/features.html#compatibility). – jah

+0

Вы пробовали этот режим? Как я вижу, это необходимо для редактирования [слишком много вещей] (http://matthewcasperson.blogspot.ru/2013/07/exporting-from-mysql-to-h2.html?m=1) в sql-запросах/схеме. – Cherry

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