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

Postgres nhúng cho các bài kiểm tra khởi động mùa xuân

Tôi là tác giả của thư viện nhúng-cơ sở dữ liệu-spring-test đã được @MartinVolejnik đề cập. Tôi nghĩ rằng thư viện sẽ đáp ứng tất cả các nhu cầu của bạn (PostgreSQL + Spring Boot + Flyway + kiểm tra tích hợp). Tôi thực sự xin lỗi vì bạn đang gặp một số rắc rối, vì vậy tôi đã tạo một ứng dụng demo đơn giản để minh họa việc sử dụng thư viện cùng với khuôn khổ Spring Boot. Dưới đây, tôi tóm tắt một số bước cơ bản mà bạn cần thực hiện.

Cấu hình maven

Thêm phần phụ thuộc maven sau:

<dependency>
    <groupId>io.zonky.test</groupId>
    <artifactId>embedded-database-spring-test</artifactId>
    <version>2.0.1</version>
    <scope>test</scope>
</dependency>

Cấu hình đường bay

Thêm thuộc tính sau vào cấu hình ứng dụng của bạn:

# Sets the schemas managed by Flyway -> change the xxx value to the name of your schema
# flyway.schemas=xxx // for spring boot 1.x.x
spring.flyway.schemas=xxx // for spring boot 2.x.x

Hơn nữa, hãy đảm bảo rằng bạn không sử dụng org.flywaydb.test.junit.FlywayTestExecutionListener . Bởi vì thư viện có trình xử lý thực thi thử nghiệm riêng có thể tối ưu hóa quá trình khởi tạo cơ sở dữ liệu và việc tối ưu hóa này không có tác dụng nếu FlywayTestExecutionListener được áp dụng.

Ví dụ

Một ví dụ về lớp thử nghiệm thể hiện việc sử dụng cơ sở dữ liệu nhúng:

@RunWith(SpringRunner.class)
@DataJpaTest
@AutoConfigureEmbeddedDatabase
public class SpringDataJpaAnnotationTest {

    @Autowired
    private PersonRepository personRepository;

    @Test
    public void testEmbeddedDatabase() {
        Optional<Person> personOptional = personRepository.findById(1L);

        assertThat(personOptional).hasValueSatisfying(person -> {
            assertThat(person.getId()).isNotNull();
            assertThat(person.getFirstName()).isEqualTo("Dave");
            assertThat(person.getLastName()).isEqualTo("Syer");
        });
    }
}


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Ngăn chặn các mục nhập liền kề / chồng chéo với EXCLUDE trong PostgreSQL

  2. Kết nối postgresql với sqlalchemy

  3. Trả về các hàng phù hợp với các phần tử của mảng đầu vào trong hàm plpgsql

  4. sự cố với python management.py di chuyển -> Không có mô-đun nào có tên psycopg2

  5. LỖI:cột quan hệ không tồn tại PostgreSQL, Không thể chạy truy vấn chèn