PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Wbudowany Postgres do wiosennych testów rozruchowych

Jestem autorem biblioteki embedded-database-spring-test, o której wspomniał @MartinVolejnik. Myślę, że biblioteka powinna spełnić wszystkie Twoje potrzeby (PostgreSQL + Spring Boot + Flyway + testy integracyjne). Bardzo przepraszam, że masz problemy, dlatego stworzyłem prostą aplikację demonstracyjną, która demonstruje użycie biblioteki wraz z frameworkiem Spring Boot. Poniżej podsumowałem kilka podstawowych czynności, które należy wykonać.

Konfiguracja Mavena

Dodaj następującą zależność maven:

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

Konfiguracja Flyway

Dodaj następującą właściwość do konfiguracji aplikacji:

# 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

Ponadto upewnij się, że nie używasz org.flywaydb.test.junit.FlywayTestExecutionListener . Ponieważ biblioteka ma własny odbiornik wykonywania testów, który może zoptymalizować inicjalizację bazy danych, a ta optymalizacja nie ma żadnego wpływu, jeśli FlywayTestExecutionListener jest stosowany.

Przykład

Przykład klasy testowej demonstrującej użycie wbudowanej bazy danych:

@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. PostgreSQL zwraca zestaw wyników jako tablicę JSON?

  2. Jak przekonwertować klucz podstawowy z liczby całkowitej na szeregowy?

  3. PostgreSQL:nadaj użytkownikowi wszystkie uprawnienia w bazie danych PostgreSQL

  4. Jak włączyć TimescaleDB w istniejącej bazie danych PostgreSQL

  5. Jak unpivotować tabelę w PostgreSQL