Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Fase pakar mana yang akan selalu dieksekusi setelah fase pengujian?

Tidak ada fase tertentu dalam Siklus proses Maven yang sesuai dengan pra dan pasca tes. Ini karena pengujian unit tidak seharusnya memerlukan lingkungan eksternal. Sepertinya yang ingin Anda lakukan bukanlah pengujian unit, melainkan pengujian integrasi, karena memerlukan lingkungan yang harus disiapkan.

Dari dokumen :

Dan ada pre-integration-test , integration-test dan post-integration-test yang digunakan untuk menyiapkan, menjalankan, dan menghancurkan lingkungan pengujian.

Dengan demikian, akan lebih mudah dan jauh lebih bersih untuk melakukan ini di integration-test fase menggunakan maven-failsafe-plugin .

Sekarang, jika Anda benar-benar ingin menjalankannya sebagai pengujian unit, saya tidak akan menulis pembuatan/penghapusan database sebagai plugin Maven. Akan jauh lebih baik untuk membiarkan aplikasi Anda membuat database pengujian ketika dikonfigurasi dalam lingkungan pengujian. (Misalnya, jika Anda menggunakan Spring, ia memiliki banyak fasilitas untuk itu.)

Dan, jika Anda benar-benar ingin menjalankannya sebagai unit test di test fase, dan menggunakan plugin Anda, Anda harus melewati eksekusi default maven-surefire-plugin lalu tentukan eksekusi plugin Maven Anda yang membuat database, eksekusi baru maven-surefire-plugin dan eksekusi plugin Maven Anda menjatuhkan database, terikat pada test fase.

Ini berfungsi karena Maven memanggil plugin dalam urutan sebagai mereka didefinisikan dalam POM ketika mereka terikat pada fase yang sama.

Konfigurasi akan terlihat seperti:

<plugin>
  <artifactId>maven-surefire-plugin</artifactId>
  <version>2.19.1</version>
  <executions>
    <execution>
      <id>default-test</id>
      <configuration>
        <skip>true</skip>
      </configuration>
    </execution>
  </executions>
</plugin>
<plugin>
  <groupId><!-- group id of your plugin --></groupId>
  <artifactId><!-- artifact id of your plugin --></artifactId>
  <version><!-- version --></version>
  <executions>
    <execution>
      <id>create-db</id>
      <phase>test</phase>
      <goals>
        <goal><!-- your goal --></goal>
      </goals>
      <!-- add configuration -->
    </execution>
  </executions>
</plugin>
<plugin>
  <artifactId>maven-surefire-plugin</artifactId>
  <version>2.19.1</version>
  <executions>
    <execution>
      <id>test</id>
      <phase>test</phase>
      <goals>
        <goal>test</goal>
      </goals>
    </execution>
  </executions>
</plugin>
<plugin>
  <groupId><!-- group id of your plugin --></groupId>
  <artifactId><!-- artifact id of your plugin --></artifactId>
  <version><!-- version --></version>
  <executions>
    <execution>
      <id>drop-db</id>
      <phase>test</phase>
      <goals>
        <goal><!-- your goal --></goal>
      </goals>
      <!-- add configuration -->
    </execution>
  </executions>
</plugin>



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. kueri pivot/tab silang mysql

  2. Apakah tabel dibuat dengan CREATE SEMENTARA TABLE di memori atau di disk?

  3. MySql SELECT INTO Variable:mengembalikan null

  4. Bagaimana menggabungkan GROUP BY, ORDER BY dan HAVING

  5. Unix SSH tanpa kata sandi