SpringBootTest H2 Database für Test

DrPils

Bekanntes Mitglied
Hi,

Meine Application läuft mit einer Postgres Datenbank, für die Unit Tests möchte ich aber dass eine H2 Datenbank verwendet wird.
Ich dachte der Weg dahin ist es in den Test Klassen, die Annotation @ActiveProfiles("profilname") und entprechend eine application.properties mit dem Profilnamen anzulegen.
Ich habe als einmal eine application.yaml Datei und eine application.test.yaml Datei angelegt.
Leider wird bei den Tests in die Postgres DB geschrieben.


Java:
@SpringBootTest
@ExtendWith(SpringExtension.class)
@EnableJpaRepositories(basePackages = "org.example.repositories")
@ActiveProfiles("test")
class CategoryServiceTest {
   /*
   ....
   * */
}

application.test.yaml
YAML:
spring:
  datasource:
    username: sa
    password:
    url: jdbc:h2:~/testdb;
    driverClassName: org.h2.Driver
logging:
  level:
    root: info
 

mrBrown

Super-Moderator
Mitarbeiter
Vielleicht auch interessant statt H2: Testcontainers mit Postgres.

Damit startet man dann on the fly eine Postgres-Datenbank für die Tests, ist nicht relevant mehr Aufwand als H2, hat aber den Vorteil, das man noch mehr potentielle Fehler findet :)
 

DrPils

Bekanntes Mitglied
Vielleicht auch interessant statt H2: Testcontainers mit Postgres.

Damit startet man dann on the fly eine Postgres-Datenbank für die Tests, ist nicht relevant mehr Aufwand als H2, hat aber den Vorteil, das man noch mehr potentielle Fehler findet :)

Habe mir die Testcontainer mal angeschaut. Irgendwie läuft er nicht bei mir.
containerIsUpAnRunning schlägt fehl.
OS ist Windows und die Docker engine läuft.

Java:
@Testcontainers
class TestContainerTest{

    companion object {
        @Container
        private val container = PostgreSQLContainer<Nothing>("postgres:latest")
    }

    @Test
    fun containerIsUpAnRunning() {
        assertTrue(container.isRunning)
    }
}
 

DrPils

Bekanntes Mitglied
Habe mir die Testcontainer mal angeschaut. Irgendwie läuft er nicht bei mir.
containerIsUpAnRunning schlägt fehl.
OS ist Windows und die Docker engine läuft.

Java:
@Testcontainers
class TestContainerTest{

    companion object {
        @Container
        private val container = PostgreSQLContainer<Nothing>("postgres:latest")
    }

    @Test
    fun containerIsUpAnRunning() {
        assertTrue(container.isRunning)
    }
}

Ok man muss den Controller vorher mit .start() explizit starten :rolleyes:
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
Zrebna SpringBoot-Project: java.sql.SQLSyntaxErrorException: Access denied for user 'gap3'@'%' to database '3306/gap3' Frameworks - Spring, Play, Blade, Vaadin & Co 3
ExceptionOfExpectation In Meiner Spring-Boot Applikation verlangt die Datenbank Wert für eine ID Frameworks - Spring, Play, Blade, Vaadin & Co 5
ExceptionOfExpectation @Value() für application.properties [SpringBoot] Frameworks - Spring, Play, Blade, Vaadin & Co 9
H Konfigurierbarer Filter für OSGi service-Referenz in blueprint Frameworks - Spring, Play, Blade, Vaadin & Co 0
OnDemand Suche "Wizard" für Vaadin für Unterstützung bei Erstbenutzung von Funktionen Frameworks - Spring, Play, Blade, Vaadin & Co 2
R Wie schreibt man Test für einen Controller? Frameworks - Spring, Play, Blade, Vaadin & Co 5
Zrebna Vaadin: ToolbarButton - Breite für Caption reicht nicht aus. Frameworks - Spring, Play, Blade, Vaadin & Co 1
D Kein Endpoint für Swagger UI Frameworks - Spring, Play, Blade, Vaadin & Co 6
N Spring Boot - Overkill für private Projekte? Frameworks - Spring, Play, Blade, Vaadin & Co 3
Z JPA Extra-Entity für Many-To-Many gewissermaßen zu Fuß Frameworks - Spring, Play, Blade, Vaadin & Co 5
R Architektur für Spring Boot Projekt Frameworks - Spring, Play, Blade, Vaadin & Co 5
LesterBurnham Spring, Config Server, mehrere Gitlab Repos für Konfiguration - best practices Frameworks - Spring, Play, Blade, Vaadin & Co 1
J Framework für KI Frameworks - Spring, Play, Blade, Vaadin & Co 4
Thallius Gibt es einen "Standard" Folder für Spring deployment auf Linux Servern? Frameworks - Spring, Play, Blade, Vaadin & Co 13
C Suche Tutorial für - Spielfiguren springen lassen Frameworks - Spring, Play, Blade, Vaadin & Co 4
K Spring Security für Java SE Frameworks - Spring, Play, Blade, Vaadin & Co 2
M Konfiguration von Spring Security für httpBasic Auth und jdbc Authentication. Frameworks - Spring, Play, Blade, Vaadin & Co 3
J Resolver für XML Schema Location beim Laden des Spring Application Context Frameworks - Spring, Play, Blade, Vaadin & Co 1
G Suche einfaches Beispiel für AspectJ (ohne Spring AOP) Frameworks - Spring, Play, Blade, Vaadin & Co 1
B Buchempfehlung für Groovy, Spring, Hibernate, SOAP, J2EE gesucht Frameworks - Spring, Play, Blade, Vaadin & Co 1
G Spring <spring:message für Images Frameworks - Spring, Play, Blade, Vaadin & Co 1
A Spring MVC / JSP und Defaultwerte für nicht ausgefüllte Textfelder Frameworks - Spring, Play, Blade, Vaadin & Co 0
A Eclipse Projekt für Entwicklung mit Spring Webflow 2.2 Frameworks - Spring, Play, Blade, Vaadin & Co 2
S Spring IDE Plugin für eclipse Frameworks - Spring, Play, Blade, Vaadin & Co 12
S Wo kann man das Spring IDE Plugin für Eclipse downloaden? Frameworks - Spring, Play, Blade, Vaadin & Co 0
A Anleitung für JSF 2.0 und Spring Web Flow 2.1 Frameworks - Spring, Play, Blade, Vaadin & Co 1
S Spring für Anfänger Frameworks - Spring, Play, Blade, Vaadin & Co 21
I Annotation für JSF 1.2 bei SPRING 3.0 Frameworks - Spring, Play, Blade, Vaadin & Co 6

Ähnliche Java Themen

Neue Themen


Oben