Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Giai đoạn maven nào sẽ luôn được thực hiện sau giai đoạn thử nghiệm?

Không có giai đoạn cụ thể nào trong Vòng đời của Maven tương ứng với trước và sau kiểm tra. Điều này là do các bài kiểm tra đơn vị không được cho là yêu cầu môi trường bên ngoài. Có vẻ như những gì bạn muốn làm không phải là kiểm tra đơn vị mà thay vào đó là kiểm tra tích hợp, vì chúng yêu cầu một môi trường được thiết lập.

Từ tài liệu :

Và có pre-integration-test , integration-testpost-integration-test được sử dụng để thiết lập, chạy và phá hủy môi trường thử nghiệm.

Như vậy, sẽ dễ dàng và gọn gàng hơn rất nhiều để thực hiện việc này trong integration-test giai đoạn sử dụng maven-failsafe-plugin .

Bây giờ, nếu bạn thực sự muốn chạy nó dưới dạng các bài kiểm tra đơn vị, tôi sẽ không viết việc tạo / xóa cơ sở dữ liệu dưới dạng một plugin Maven. Sẽ tốt hơn rất nhiều nếu để ứng dụng của bạn tạo cơ sở dữ liệu thử nghiệm khi nó được cấu hình trong môi trường thử nghiệm. (Ví dụ:nếu bạn đang sử dụng Spring, nó có rất nhiều tiện ích cho việc đó.)

Và, nếu bạn thực sự muốn chạy nó dưới dạng các bài kiểm tra đơn vị trong test giai đoạn, bằng cách sử dụng plugin của mình, bạn sẽ phải bỏ qua quá trình thực thi mặc định của maven-surefire-plugin và sau đó xác định một quá trình thực thi plugin Maven của bạn tạo cơ sở dữ liệu, một quá trình thực thi mới của maven-surefire-plugin và việc thực thi plugin Maven của bạn làm rơi cơ sở dữ liệu, bị ràng buộc với test giai đoạn.

Điều này hoạt động vì Maven gọi các plugin theo thứ tự như chúng được định nghĩa trong POM khi chúng bị ràng buộc vào cùng một giai đoạn.

Cấu hình sẽ giống như sau:

<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. Mysql innoDB tiếp tục gặp sự cố

  2. Bắt nguồn gốc

  3. Lỗi:Phương pháp hoặc hoạt động không được triển khai. trong khi Cơ sở dữ liệu MYSQL giàn giáo

  4. Tạo hệ thống giấy phép

  5. Loại trừ các trường nhất định khỏi truy vấn SQL SUM