database-rider / database-rider

Database testing made easy!

Home Page:https://database-rider.github.io/database-rider

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Can't run several test at once using Testcontainers and Database Rider

romach opened this issue · comments

I want to test persisting layer in my Spring Boot project with Database Rider and Testcontainers.

When I run my test classes separately, everything works fine.

But, when I run all my tests at once, the error is occurred:

org.postgresql.util.PSQLException: An I/O error occurred while sending to the backend.

java.lang.RuntimeException: Could not create dataset for test 'shouldFindUserById'.

Could you please help me to resolve this error?


Here is source code of my project - https://github.com/stack-overflow-qna/jpa-testcontainer-dbrider-tests

Commands to run separate test classes:

./mvnw test -Dtest=UserRepositoryTest
./mvnw test -Dtest=BlogPostRepositoryTest

Command to run all tests:

./mvnw test

Test classes:

package com.romach007.jpa_test.blog_post.repository;

import com.github.database.rider.core.api.dataset.DataSet;
import com.github.database.rider.junit5.api.DBRider;
import com.romach007.jpa_test.entity.BlogPostEntity;
import com.romach007.jpa_test.repository.BlogPostRepository;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.autoconfigure.jdbc.AutoConfigureTestDatabase;
import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest;
import org.springframework.boot.testcontainers.service.connection.ServiceConnection;
import org.testcontainers.containers.PostgreSQLContainer;
import org.testcontainers.junit.jupiter.Container;
import org.testcontainers.junit.jupiter.Testcontainers;

import java.util.UUID;

import static org.junit.jupiter.api.Assertions.assertEquals;

@DBRider
@Testcontainers
@DataJpaTest
@AutoConfigureTestDatabase(replace = AutoConfigureTestDatabase.Replace.NONE)
public class BlogPostRepositoryTest {
    @ServiceConnection
    @Container
    static PostgreSQLContainer<?> container = new PostgreSQLContainer<>("postgres:16.1");

    @Autowired
    private BlogPostRepository blogPostRepository;

    @Test
    @DataSet("datasets/blogPosts.yml")
    public void shouldFindBlogPostById() {
        // Given
        BlogPostEntity expectedBlogPost = new BlogPostEntity();
        expectedBlogPost.setId(UUID.fromString("2eff530f-5f91-402d-89c7-c4f3099c9833"));
        expectedBlogPost.setContent("Test content");

        // When
        BlogPostEntity actualBlogPost = blogPostRepository.findBlogPostById(UUID.fromString("2eff530f-5f91-402d-89c7-c4f3099c9833")).orElse(null);

        // Then
        assertEquals(expectedBlogPost, actualBlogPost);
    }
}
package com.romach007.jpa_test.blog_post.repository;

import com.github.database.rider.core.api.configuration.DBUnit;
import com.github.database.rider.core.api.dataset.DataSet;
import com.github.database.rider.junit5.api.DBRider;
import com.romach007.jpa_test.entity.UserEntity;
import com.romach007.jpa_test.repository.UserRepository;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.autoconfigure.jdbc.AutoConfigureTestDatabase;
import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest;
import org.springframework.boot.testcontainers.service.connection.ServiceConnection;
import org.testcontainers.containers.PostgreSQLContainer;
import org.testcontainers.junit.jupiter.Container;
import org.testcontainers.junit.jupiter.Testcontainers;

import java.util.UUID;

import static org.junit.jupiter.api.Assertions.assertEquals;

@DBRider
//@DBUnit(caseSensitiveTableNames = true, escapePattern = "\"")
@Testcontainers
@DataJpaTest
@AutoConfigureTestDatabase(replace = AutoConfigureTestDatabase.Replace.NONE)
public class UserRepositoryTest {
    @ServiceConnection
    @Container
    static PostgreSQLContainer<?> container = new PostgreSQLContainer<>("postgres:16.1");

    @Autowired
    private UserRepository userRepository;

    @Test
    @DataSet("datasets/users.yml")
    public void shouldFindUserById() {
        // Given
        UserEntity expectedUser = new UserEntity();
        expectedUser.setId(UUID.fromString("2eff530f-5f91-402d-89c7-c4f3099c9833"));
        expectedUser.setName("User");

        // When
        UserEntity actualUser = userRepository.findUserById(UUID.fromString("2eff530f-5f91-402d-89c7-c4f3099c9833")).orElse(null);

        // Then
        assertEquals(expectedUser, actualUser);
    }
}

Error while running all tests (using command ./mvnw test):

./mvnw test
[INFO] Scanning for projects...
[INFO] 
[INFO] -----------------------< com.romach007:jpa_test >-----------------------
[INFO] Building jpa_test 3.2.2
[INFO]   from pom.xml
[INFO] --------------------------------[ jar ]---------------------------------
[INFO] 
[INFO] --- resources:3.3.1:resources (default-resources) @ jpa_test ---
[INFO] Copying 1 resource from src/main/resources to target/classes
[INFO] Copying 1 resource from src/main/resources to target/classes
[INFO] 
[INFO] --- compiler:3.11.0:compile (default-compile) @ jpa_test ---
[INFO] Nothing to compile - all classes are up to date
[INFO] 
[INFO] --- resources:3.3.1:testResources (default-testResources) @ jpa_test ---
[INFO] Copying 3 resources from src/test/resources to target/test-classes
[INFO] 
[INFO] --- compiler:3.11.0:testCompile (default-testCompile) @ jpa_test ---
[INFO] Nothing to compile - all classes are up to date
[INFO] 
[INFO] --- surefire:3.1.2:test (default-test) @ jpa_test ---
[INFO] Using auto detected provider org.apache.maven.surefire.junitplatform.JUnitPlatformProvider
[INFO] 
[INFO] -------------------------------------------------------
[INFO]  T E S T S
[INFO] -------------------------------------------------------
[INFO] Running com.romach007.jpa_test.blog_post.repository.BlogPostRepositoryTest
02:40:00.412 [main] INFO org.testcontainers.images.PullPolicy -- Image pull policy will be performed by: DefaultPullPolicy()
02:40:00.417 [main] INFO org.testcontainers.utility.ImageNameSubstitutor -- Image name substitution will be performed by: DefaultImageNameSubstitutor (composite of 'ConfigurationFileImageNameSubstitutor' and 'PrefixingImageNameSubstitutor')
02:40:00.641 [main] INFO org.testcontainers.dockerclient.DockerClientProviderStrategy -- Loaded org.testcontainers.dockerclient.UnixSocketClientProviderStrategy from ~/.testcontainers.properties, will try it first
02:40:00.861 [main] INFO org.testcontainers.dockerclient.DockerClientProviderStrategy -- Found Docker environment with local Unix socket (unix:///var/run/docker.sock)
02:40:00.862 [main] INFO org.testcontainers.DockerClientFactory -- Docker host IP address is localhost
02:40:00.878 [main] INFO org.testcontainers.DockerClientFactory -- Connected to docker: 
  Server Version: 25.0.3
  API Version: 1.44
  Operating System: Docker Desktop
  Total Memory: 7941 MB
02:40:00.950 [main] INFO tc.testcontainers/ryuk:0.5.1 -- Creating container for image: testcontainers/ryuk:0.5.1
02:40:01.100 [main] INFO tc.testcontainers/ryuk:0.5.1 -- Container testcontainers/ryuk:0.5.1 is starting: 8a4a54d15e7fe6ca31bfee266ff3cafa0d529d771329cdf817b4d78df8de8d44
02:40:01.549 [main] INFO tc.testcontainers/ryuk:0.5.1 -- Container testcontainers/ryuk:0.5.1 started in PT0.599064S
02:40:01.557 [main] INFO org.testcontainers.utility.RyukResourceReaper -- Ryuk started - will monitor and terminate Testcontainers containers on JVM exit
02:40:01.557 [main] INFO org.testcontainers.DockerClientFactory -- Checking the system...
02:40:01.558 [main] INFO org.testcontainers.DockerClientFactory -- ✔︎ Docker server version should be at least 1.6.0
02:40:01.559 [main] INFO tc.postgres:16.1 -- Creating container for image: postgres:16.1
02:40:01.644 [main] INFO tc.postgres:16.1 -- Container postgres:16.1 is starting: 13515c298a79b9b8842208c4a9d15029b5ca65057bbb79efd2b61c3f59031b3f
02:40:03.093 [main] INFO tc.postgres:16.1 -- Container postgres:16.1 started in PT1.534502S
02:40:03.094 [main] INFO tc.postgres:16.1 -- Container is started (JDBC URL: jdbc:postgresql://localhost:63261/test?loggerLevel=OFF)
02:40:03.195 [main] INFO org.springframework.test.context.support.AnnotationConfigContextLoaderUtils -- Could not detect default configuration classes for test class [com.romach007.jpa_test.blog_post.repository.BlogPostRepositoryTest]: BlogPostRepositoryTest does not declare any static, non-private, non-final, nested classes annotated with @Configuration.
02:40:03.385 [main] INFO org.springframework.boot.test.context.SpringBootTestContextBootstrapper -- Found @SpringBootConfiguration com.romach007.jpa_test.Application for test class com.romach007.jpa_test.blog_post.repository.BlogPostRepositoryTest

  .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::                (v3.2.2)

2024-04-14T02:40:03.703+03:00  INFO 72228 --- [           main] c.r.j.b.r.BlogPostRepositoryTest         : Starting BlogPostRepositoryTest using Java 21 with PID 72228 (started by romancherepanov in /Users/romancherepanov/Projects/stack-overflow/jpa-testcontainer-dbrider-tests)
2024-04-14T02:40:03.704+03:00  INFO 72228 --- [           main] c.r.j.b.r.BlogPostRepositoryTest         : No active profile set, falling back to 1 default profile: "default"
2024-04-14T02:40:04.007+03:00  INFO 72228 --- [           main] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data JPA repositories in DEFAULT mode.
2024-04-14T02:40:04.090+03:00  INFO 72228 --- [           main] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 77 ms. Found 2 JPA repository interfaces.
2024-04-14T02:40:05.038+03:00  INFO 72228 --- [           main] liquibase.database                       : Set default schema name to public
2024-04-14T02:40:05.327+03:00  INFO 72228 --- [           main] liquibase.changelog                      : Creating database history table with name: public.databasechangelog
2024-04-14T02:40:05.351+03:00  INFO 72228 --- [           main] liquibase.changelog                      : Reading from public.databasechangelog
2024-04-14T02:40:05.417+03:00  INFO 72228 --- [           main] liquibase.lockservice                    : Successfully acquired change log lock
2024-04-14T02:40:05.419+03:00  INFO 72228 --- [           main] liquibase.command                        : Using deploymentId: 3051605418
2024-04-14T02:40:05.421+03:00  INFO 72228 --- [           main] liquibase.changelog                      : Reading from public.databasechangelog
Running Changeset: db/changelog/changelog.yaml::1::Liquibase
2024-04-14T02:40:05.443+03:00  INFO 72228 --- [           main] liquibase.changelog                      : Table blog_post created
2024-04-14T02:40:05.445+03:00  INFO 72228 --- [           main] liquibase.changelog                      : ChangeSet db/changelog/changelog.yaml::1::Liquibase ran successfully in 10ms
Running Changeset: db/changelog/changelog.yaml::2::Liquibase
2024-04-14T02:40:05.458+03:00  INFO 72228 --- [           main] liquibase.changelog                      : Table user created
2024-04-14T02:40:05.460+03:00  INFO 72228 --- [           main] liquibase.changelog                      : ChangeSet db/changelog/changelog.yaml::2::Liquibase ran successfully in 6ms
2024-04-14T02:40:05.466+03:00  INFO 72228 --- [           main] liquibase.util                           : UPDATE SUMMARY
2024-04-14T02:40:05.466+03:00  INFO 72228 --- [           main] liquibase.util                           : Run:                          2
2024-04-14T02:40:05.466+03:00  INFO 72228 --- [           main] liquibase.util                           : Previously run:               0
2024-04-14T02:40:05.466+03:00  INFO 72228 --- [           main] liquibase.util                           : Filtered out:                 0
2024-04-14T02:40:05.466+03:00  INFO 72228 --- [           main] liquibase.util                           : -------------------------------
2024-04-14T02:40:05.466+03:00  INFO 72228 --- [           main] liquibase.util                           : Total change sets:            2
2024-04-14T02:40:05.467+03:00  INFO 72228 --- [           main] liquibase.util                           : Update summary generated
2024-04-14T02:40:05.468+03:00  INFO 72228 --- [           main] liquibase.command                        : Update command completed successfully.
Liquibase: Update has been successful. Rows affected: 2
2024-04-14T02:40:05.472+03:00  INFO 72228 --- [           main] liquibase.lockservice                    : Successfully released change log lock
2024-04-14T02:40:05.474+03:00  INFO 72228 --- [           main] liquibase.command                        : Command execution complete
2024-04-14T02:40:05.544+03:00  INFO 72228 --- [           main] com.zaxxer.hikari.HikariDataSource       : HikariPool-1 - Starting...
2024-04-14T02:40:05.595+03:00  INFO 72228 --- [           main] com.zaxxer.hikari.pool.HikariPool        : HikariPool-1 - Added connection org.postgresql.jdbc.PgConnection@5ac646b3
2024-04-14T02:40:05.596+03:00  INFO 72228 --- [           main] com.zaxxer.hikari.HikariDataSource       : HikariPool-1 - Start completed.
2024-04-14T02:40:05.642+03:00  INFO 72228 --- [           main] o.hibernate.jpa.internal.util.LogHelper  : HHH000204: Processing PersistenceUnitInfo [name: default]
2024-04-14T02:40:05.717+03:00  INFO 72228 --- [           main] org.hibernate.Version                    : HHH000412: Hibernate ORM core version 6.4.1.Final
2024-04-14T02:40:05.763+03:00  INFO 72228 --- [           main] o.h.c.internal.RegionFactoryInitiator    : HHH000026: Second-level cache disabled
2024-04-14T02:40:06.061+03:00  INFO 72228 --- [           main] o.s.o.j.p.SpringPersistenceUnitInfo      : No LoadTimeWeaver setup: ignoring JPA class transformer
2024-04-14T02:40:06.969+03:00  INFO 72228 --- [           main] o.h.e.t.j.p.i.JtaPlatformInitiator       : HHH000489: No JTA platform available (set 'hibernate.transaction.jta.platform' to enable JTA platform integration)
2024-04-14T02:40:06.972+03:00  INFO 72228 --- [           main] j.LocalContainerEntityManagerFactoryBean : Initialized JPA EntityManagerFactory for persistence unit 'default'
2024-04-14T02:40:07.259+03:00  INFO 72228 --- [           main] c.r.j.b.r.BlogPostRepositoryTest         : Started BlogPostRepositoryTest in 3.811 seconds (process running for 7.518)
OpenJDK 64-Bit Server VM warning: Sharing is only supported for boot loader classes because bootstrap classpath has been appended
WARNING: A Java agent has been loaded dynamically (/Users/romancherepanov/.m2/repository/net/bytebuddy/byte-buddy-agent/1.14.11/byte-buddy-agent-1.14.11.jar)
WARNING: If a serviceability tool is in use, please run with -XX:+EnableDynamicAgentLoading to hide this warning
WARNING: If a serviceability tool is not in use, please run with -Djdk.instrument.traceUsage for more information
WARNING: Dynamic loading of agents will be disallowed by default in a future release
2024-04-14T02:40:07.848+03:00  INFO 72228 --- [           main] org.dbunit.database.DatabaseConfig       : The property ending with 'schema' was not found. Please notify a dbunit developer to add the property to the class org.dbunit.database.DatabaseConfig
2024-04-14T02:40:07.848+03:00  INFO 72228 --- [           main] org.dbunit.database.DatabaseConfig       : The property ending with 'prologTimeout' was not found. Please notify a dbunit developer to add the property to the class org.dbunit.database.DatabaseConfig
2024-04-14T02:40:07.848+03:00  INFO 72228 --- [           main] org.dbunit.database.DatabaseConfig       : The property ending with 'replacers' was not found. Please notify a dbunit developer to add the property to the class org.dbunit.database.DatabaseConfig
2024-04-14T02:40:07.852+03:00  INFO 72228 --- [           main] c.g.d.r.c.dataset.DataSetExecutorImpl    : DBUnit configuration for dataset executor 'junit5':cacheConnection: true
cacheTableNames: true
caseInsensitiveStrategy: UPPERCASE
columnSensing: false
leakHunter: false
mergeDataSets: false
mergingStrategy: METHOD
disableSequenceFiltering: false
alwaysCleanBefore: false
alwaysCleanAfter: false
raiseExceptionOnCleanUp: false
disablePKCheckFor: com.github.database.rider.core.configuration.DBUnitConfig@b23415b5
schema: 
tableType: [TABLE]
escapePattern: "
allowEmptyFields: false
fetchSize: 100
qualifiedTableNames: false
prologTimeout: 1000
batchSize: 100
batchedStatements: false
caseSensitiveTableNames: true
replacers: [com.github.database.rider.core.replacers.DateTimeReplacer@3ea3b20d, com.github.database.rider.core.replacers.UnixTimestampReplacer@17856f0, com.github.database.rider.core.replacers.NullReplacer@3ffa424d]

Hibernate: select bpe1_0.id,bpe1_0.content from blog_post bpe1_0 where bpe1_0.id=?
[INFO] Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 7.933 s -- in com.romach007.jpa_test.blog_post.repository.BlogPostRepositoryTest
[INFO] Running com.romach007.jpa_test.blog_post.repository.UserRepositoryTest
2024-04-14T02:40:08.311+03:00  INFO 72228 --- [           main] tc.postgres:16.1                         : Creating container for image: postgres:16.1
2024-04-14T02:40:08.384+03:00  INFO 72228 --- [           main] tc.postgres:16.1                         : Container postgres:16.1 is starting: 1a382cb384c9fd591802ca0ad0f0bc9e919439bc710568e98a4893a8641c68a7
2024-04-14T02:40:09.962+03:00  INFO 72228 --- [           main] tc.postgres:16.1                         : Container postgres:16.1 started in PT1.65128S
2024-04-14T02:40:09.963+03:00  INFO 72228 --- [           main] tc.postgres:16.1                         : Container is started (JDBC URL: jdbc:postgresql://localhost:63279/test?loggerLevel=OFF)
2024-04-14T02:40:09.965+03:00  INFO 72228 --- [           main] t.c.s.AnnotationConfigContextLoaderUtils : Could not detect default configuration classes for test class [com.romach007.jpa_test.blog_post.repository.UserRepositoryTest]: UserRepositoryTest does not declare any static, non-private, non-final, nested classes annotated with @Configuration.
2024-04-14T02:40:09.981+03:00  INFO 72228 --- [           main] .b.t.c.SpringBootTestContextBootstrapper : Found @SpringBootConfiguration com.romach007.jpa_test.Application for test class com.romach007.jpa_test.blog_post.repository.UserRepositoryTest

  .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::                (v3.2.2)

2024-04-14T02:40:10.008+03:00  INFO 72228 --- [           main] c.r.j.b.repository.UserRepositoryTest    : Starting UserRepositoryTest using Java 21 with PID 72228 (started by romancherepanov in /Users/romancherepanov/Projects/stack-overflow/jpa-testcontainer-dbrider-tests)
2024-04-14T02:40:10.008+03:00  INFO 72228 --- [           main] c.r.j.b.repository.UserRepositoryTest    : No active profile set, falling back to 1 default profile: "default"
2024-04-14T02:40:10.103+03:00  INFO 72228 --- [           main] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data JPA repositories in DEFAULT mode.
2024-04-14T02:40:10.112+03:00  INFO 72228 --- [           main] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 8 ms. Found 2 JPA repository interfaces.
2024-04-14T02:40:10.209+03:00  INFO 72228 --- [           main] liquibase.database                       : Set default schema name to public
2024-04-14T02:40:10.262+03:00  INFO 72228 --- [           main] liquibase.changelog                      : Creating database history table with name: public.databasechangelog
2024-04-14T02:40:10.270+03:00  INFO 72228 --- [           main] liquibase.changelog                      : Reading from public.databasechangelog
2024-04-14T02:40:10.308+03:00  INFO 72228 --- [           main] liquibase.lockservice                    : Successfully acquired change log lock
2024-04-14T02:40:10.309+03:00  INFO 72228 --- [           main] liquibase.command                        : Using deploymentId: 3051610309
2024-04-14T02:40:10.311+03:00  INFO 72228 --- [           main] liquibase.changelog                      : Reading from public.databasechangelog
Running Changeset: db/changelog/changelog.yaml::1::Liquibase
2024-04-14T02:40:10.323+03:00  INFO 72228 --- [           main] liquibase.changelog                      : Table blog_post created
2024-04-14T02:40:10.324+03:00  INFO 72228 --- [           main] liquibase.changelog                      : ChangeSet db/changelog/changelog.yaml::1::Liquibase ran successfully in 7ms
Running Changeset: db/changelog/changelog.yaml::2::Liquibase
2024-04-14T02:40:10.335+03:00  INFO 72228 --- [           main] liquibase.changelog                      : Table user created
2024-04-14T02:40:10.336+03:00  INFO 72228 --- [           main] liquibase.changelog                      : ChangeSet db/changelog/changelog.yaml::2::Liquibase ran successfully in 5ms
2024-04-14T02:40:10.340+03:00  INFO 72228 --- [           main] liquibase.util                           : UPDATE SUMMARY
2024-04-14T02:40:10.340+03:00  INFO 72228 --- [           main] liquibase.util                           : Run:                          2
2024-04-14T02:40:10.340+03:00  INFO 72228 --- [           main] liquibase.util                           : Previously run:               0
2024-04-14T02:40:10.341+03:00  INFO 72228 --- [           main] liquibase.util                           : Filtered out:                 0
2024-04-14T02:40:10.341+03:00  INFO 72228 --- [           main] liquibase.util                           : -------------------------------
2024-04-14T02:40:10.341+03:00  INFO 72228 --- [           main] liquibase.util                           : Total change sets:            2
2024-04-14T02:40:10.341+03:00  INFO 72228 --- [           main] liquibase.util                           : Update summary generated
2024-04-14T02:40:10.341+03:00  INFO 72228 --- [           main] liquibase.command                        : Update command completed successfully.
Liquibase: Update has been successful. Rows affected: 2
2024-04-14T02:40:10.345+03:00  INFO 72228 --- [           main] liquibase.lockservice                    : Successfully released change log lock
2024-04-14T02:40:10.346+03:00  INFO 72228 --- [           main] liquibase.command                        : Command execution complete
2024-04-14T02:40:10.359+03:00  INFO 72228 --- [           main] com.zaxxer.hikari.HikariDataSource       : HikariPool-2 - Starting...
2024-04-14T02:40:10.386+03:00  INFO 72228 --- [           main] com.zaxxer.hikari.pool.HikariPool        : HikariPool-2 - Added connection org.postgresql.jdbc.PgConnection@8f2513c
2024-04-14T02:40:10.387+03:00  INFO 72228 --- [           main] com.zaxxer.hikari.HikariDataSource       : HikariPool-2 - Start completed.
2024-04-14T02:40:10.388+03:00  INFO 72228 --- [           main] o.hibernate.jpa.internal.util.LogHelper  : HHH000204: Processing PersistenceUnitInfo [name: default]
2024-04-14T02:40:10.389+03:00  INFO 72228 --- [           main] o.h.c.internal.RegionFactoryInitiator    : HHH000026: Second-level cache disabled
2024-04-14T02:40:10.392+03:00  INFO 72228 --- [           main] o.s.o.j.p.SpringPersistenceUnitInfo      : No LoadTimeWeaver setup: ignoring JPA class transformer
2024-04-14T02:40:10.432+03:00  INFO 72228 --- [           main] o.h.e.t.j.p.i.JtaPlatformInitiator       : HHH000489: No JTA platform available (set 'hibernate.transaction.jta.platform' to enable JTA platform integration)
2024-04-14T02:40:10.432+03:00  INFO 72228 --- [           main] j.LocalContainerEntityManagerFactoryBean : Initialized JPA EntityManagerFactory for persistence unit 'default'
2024-04-14T02:40:10.471+03:00  INFO 72228 --- [           main] c.r.j.b.repository.UserRepositoryTest    : Started UserRepositoryTest in 0.487 seconds (process running for 10.73)
2024-04-14T02:40:10.479+03:00  WARN 72228 --- [           main] com.zaxxer.hikari.pool.ProxyConnection   : HikariPool-1 - Connection org.postgresql.jdbc.PgConnection@19710bd9 marked as broken because of SQLSTATE(08006), ErrorCode(0)

org.postgresql.util.PSQLException: An I/O error occurred while sending to the backend.
        at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:394) ~[postgresql-42.7.1.jar:42.7.1]
        at org.postgresql.jdbc.PgStatement.executeInternal(PgStatement.java:498) ~[postgresql-42.7.1.jar:42.7.1]
        at org.postgresql.jdbc.PgStatement.execute(PgStatement.java:415) ~[postgresql-42.7.1.jar:42.7.1]
        at org.postgresql.jdbc.PgStatement.executeWithFlags(PgStatement.java:335) ~[postgresql-42.7.1.jar:42.7.1]
        at org.postgresql.jdbc.PgStatement.executeCachedSql(PgStatement.java:321) ~[postgresql-42.7.1.jar:42.7.1]
        at org.postgresql.jdbc.PgStatement.executeWithFlags(PgStatement.java:297) ~[postgresql-42.7.1.jar:42.7.1]
        at org.postgresql.jdbc.PgStatement.executeQuery(PgStatement.java:246) ~[postgresql-42.7.1.jar:42.7.1]
        at org.postgresql.jdbc.PgDatabaseMetaData.getTables(PgDatabaseMetaData.java:1377) ~[postgresql-42.7.1.jar:42.7.1]
        at com.zaxxer.hikari.pool.ProxyDatabaseMetaData.getTables(ProxyDatabaseMetaData.java:67) ~[HikariCP-5.0.1.jar:na]
        at com.zaxxer.hikari.pool.HikariProxyDatabaseMetaData.getTables(HikariProxyDatabaseMetaData.java) ~[HikariCP-5.0.1.jar:na]
        at org.dbunit.database.DefaultMetadataHandler.tableExists(DefaultMetadataHandler.java:119) ~[dbunit-2.7.3.jar:na]
        at org.dbunit.database.search.AbstractMetaDataBasedSearchCallback.getNodes(AbstractMetaDataBasedSearchCallback.java:184) ~[dbunit-2.7.3.jar:na]
        at org.dbunit.database.search.AbstractMetaDataBasedSearchCallback.getNodes(AbstractMetaDataBasedSearchCallback.java:149) ~[dbunit-2.7.3.jar:na]
        at org.dbunit.database.search.AbstractMetaDataBasedSearchCallback.getNodesFromImportedKeys(AbstractMetaDataBasedSearchCallback.java:99) ~[dbunit-2.7.3.jar:na]
        at org.dbunit.database.search.ImportedKeysSearchCallback.getEdges(ImportedKeysSearchCallback.java:53) ~[dbunit-2.7.3.jar:na]
        at org.dbunit.util.search.DepthFirstSearch.reverseSearch(DepthFirstSearch.java:264) ~[dbunit-2.7.3.jar:na]
        at org.dbunit.util.search.DepthFirstSearch.search(DepthFirstSearch.java:148) ~[dbunit-2.7.3.jar:na]
        at org.dbunit.util.search.DepthFirstSearch.search(DepthFirstSearch.java:104) ~[dbunit-2.7.3.jar:na]
        at org.dbunit.database.search.TablesDependencyHelper.getDependentTables(TablesDependencyHelper.java:91) ~[dbunit-2.7.3.jar:na]
        at org.dbunit.database.search.TablesDependencyHelper.getDependentTables(TablesDependencyHelper.java:72) ~[dbunit-2.7.3.jar:na]
        at com.github.database.rider.core.api.dataset.RiderSequenceFilter.getDependencyInfo(RiderSequenceFilter.java:175) ~[rider-core-1.42.0.jar:na]
        at com.github.database.rider.core.api.dataset.RiderSequenceFilter.sortTableNames(RiderSequenceFilter.java:68) ~[rider-core-1.42.0.jar:na]
        at com.github.database.rider.core.api.dataset.RiderSequenceFilter.<init>(RiderSequenceFilter.java:34) ~[rider-core-1.42.0.jar:na]
        at com.github.database.rider.core.dataset.DataSetExecutorImpl.performSequenceFiltering(DataSetExecutorImpl.java:323) ~[rider-core-1.42.0.jar:na]
        at com.github.database.rider.core.dataset.DataSetExecutorImpl.createDataSet(DataSetExecutorImpl.java:129) ~[rider-core-1.42.0.jar:na]
        at com.github.database.rider.core.RiderRunner.runBeforeTest(RiderRunner.java:44) ~[rider-core-1.42.0.jar:na]
        at com.github.database.rider.junit5.DBUnitExtension.beforeTestExecution(DBUnitExtension.java:69) ~[rider-junit5-1.42.0.jar:na]
        at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$invokeBeforeTestExecutionCallbacks$5(TestMethodTestDescriptor.java:192) ~[junit-jupiter-engine-5.10.1.jar:5.10.1]
        at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$invokeBeforeMethodsOrCallbacksUntilExceptionOccurs$6(TestMethodTestDescriptor.java:203) ~[junit-jupiter-engine-5.10.1.jar:5.10.1]
        at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) ~[junit-platform-engine-1.10.1.jar:1.10.1]
        at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.invokeBeforeMethodsOrCallbacksUntilExceptionOccurs(TestMethodTestDescriptor.java:203) ~[junit-jupiter-engine-5.10.1.jar:5.10.1]
        at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.invokeBeforeTestExecutionCallbacks(TestMethodTestDescriptor.java:191) ~[junit-jupiter-engine-5.10.1.jar:5.10.1]
        at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:137) ~[junit-jupiter-engine-5.10.1.jar:5.10.1]
        at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:69) ~[junit-jupiter-engine-5.10.1.jar:5.10.1]
        at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:151) ~[junit-platform-engine-1.10.1.jar:1.10.1]
        at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) ~[junit-platform-engine-1.10.1.jar:1.10.1]
        at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141) ~[junit-platform-engine-1.10.1.jar:1.10.1]
        at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137) ~[junit-platform-engine-1.10.1.jar:1.10.1]
        at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139) ~[junit-platform-engine-1.10.1.jar:1.10.1]
        at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) ~[junit-platform-engine-1.10.1.jar:1.10.1]
        at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138) ~[junit-platform-engine-1.10.1.jar:1.10.1]
        at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95) ~[junit-platform-engine-1.10.1.jar:1.10.1]
        at java.base/java.util.ArrayList.forEach(ArrayList.java:1596) ~[na:na]
        at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41) ~[junit-platform-engine-1.10.1.jar:1.10.1]
        at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:155) ~[junit-platform-engine-1.10.1.jar:1.10.1]
        at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) ~[junit-platform-engine-1.10.1.jar:1.10.1]
        at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141) ~[junit-platform-engine-1.10.1.jar:1.10.1]
        at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137) ~[junit-platform-engine-1.10.1.jar:1.10.1]
        at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139) ~[junit-platform-engine-1.10.1.jar:1.10.1]
        at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) ~[junit-platform-engine-1.10.1.jar:1.10.1]
        at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138) ~[junit-platform-engine-1.10.1.jar:1.10.1]
        at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95) ~[junit-platform-engine-1.10.1.jar:1.10.1]
        at java.base/java.util.ArrayList.forEach(ArrayList.java:1596) ~[na:na]
        at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41) ~[junit-platform-engine-1.10.1.jar:1.10.1]
        at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:155) ~[junit-platform-engine-1.10.1.jar:1.10.1]
        at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) ~[junit-platform-engine-1.10.1.jar:1.10.1]
        at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141) ~[junit-platform-engine-1.10.1.jar:1.10.1]
        at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137) ~[junit-platform-engine-1.10.1.jar:1.10.1]
        at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139) ~[junit-platform-engine-1.10.1.jar:1.10.1]
        at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) ~[junit-platform-engine-1.10.1.jar:1.10.1]
        at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138) ~[junit-platform-engine-1.10.1.jar:1.10.1]
        at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95) ~[junit-platform-engine-1.10.1.jar:1.10.1]
        at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.submit(SameThreadHierarchicalTestExecutorService.java:35) ~[junit-platform-engine-1.10.1.jar:1.10.1]
        at org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.execute(HierarchicalTestExecutor.java:57) ~[junit-platform-engine-1.10.1.jar:1.10.1]
        at org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine.execute(HierarchicalTestEngine.java:54) ~[junit-platform-engine-1.10.1.jar:1.10.1]
        at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:198) ~[junit-platform-launcher-1.10.1.jar:1.10.1]
        at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:169) ~[junit-platform-launcher-1.10.1.jar:1.10.1]
        at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:93) ~[junit-platform-launcher-1.10.1.jar:1.10.1]
        at org.junit.platform.launcher.core.EngineExecutionOrchestrator.lambda$execute$0(EngineExecutionOrchestrator.java:58) ~[junit-platform-launcher-1.10.1.jar:1.10.1]
        at org.junit.platform.launcher.core.EngineExecutionOrchestrator.withInterceptedStreams(EngineExecutionOrchestrator.java:141) ~[junit-platform-launcher-1.10.1.jar:1.10.1]
        at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:57) ~[junit-platform-launcher-1.10.1.jar:1.10.1]
        at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:103) ~[junit-platform-launcher-1.10.1.jar:1.10.1]
        at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:85) ~[junit-platform-launcher-1.10.1.jar:1.10.1]
        at org.junit.platform.launcher.core.DelegatingLauncher.execute(DelegatingLauncher.java:47) ~[junit-platform-launcher-1.10.1.jar:1.10.1]
        at org.apache.maven.surefire.junitplatform.LazyLauncher.execute(LazyLauncher.java:56) ~[surefire-junit-platform-3.1.2.jar:3.1.2]
        at org.apache.maven.surefire.junitplatform.JUnitPlatformProvider.execute(JUnitPlatformProvider.java:184) ~[surefire-junit-platform-3.1.2.jar:3.1.2]
        at org.apache.maven.surefire.junitplatform.JUnitPlatformProvider.invokeAllTests(JUnitPlatformProvider.java:148) ~[surefire-junit-platform-3.1.2.jar:3.1.2]
        at org.apache.maven.surefire.junitplatform.JUnitPlatformProvider.invoke(JUnitPlatformProvider.java:122) ~[surefire-junit-platform-3.1.2.jar:3.1.2]
        at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:385) ~[surefire-booter-3.1.2.jar:3.1.2]
        at org.apache.maven.surefire.booter.ForkedBooter.execute(ForkedBooter.java:162) ~[surefire-booter-3.1.2.jar:3.1.2]
        at org.apache.maven.surefire.booter.ForkedBooter.run(ForkedBooter.java:507) ~[surefire-booter-3.1.2.jar:3.1.2]
        at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:495) ~[surefire-booter-3.1.2.jar:3.1.2]
Caused by: java.io.EOFException: null
        at org.postgresql.core.PGStream.receiveChar(PGStream.java:467) ~[postgresql-42.7.1.jar:42.7.1]
        at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:2154) ~[postgresql-42.7.1.jar:42.7.1]
        at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:367) ~[postgresql-42.7.1.jar:42.7.1]
        ... 81 common frames omitted

[ERROR] Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 2.440 s <<< FAILURE! -- in com.romach007.jpa_test.blog_post.repository.UserRepositoryTest
[ERROR] com.romach007.jpa_test.blog_post.repository.UserRepositoryTest.shouldFindUserById -- Time elapsed: 0.019 s <<< ERROR!
java.lang.RuntimeException: Could not create dataset for test 'shouldFindUserById'.
        at com.github.database.rider.core.RiderRunner.runBeforeTest(RiderRunner.java:46)
        at com.github.database.rider.junit5.DBUnitExtension.beforeTestExecution(DBUnitExtension.java:69)
        at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
        at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
Caused by: com.github.database.rider.core.exception.DataBaseSeedingException: Could not initialize dataset: datasets/users.yml
        at com.github.database.rider.core.dataset.DataSetExecutorImpl.createDataSet(DataSetExecutorImpl.java:142)
        at com.github.database.rider.core.RiderRunner.runBeforeTest(RiderRunner.java:44)
        ... 3 more
Caused by: org.dbunit.dataset.DataSetException: Exception while searching the dependent tables.
        at com.github.database.rider.core.api.dataset.RiderSequenceFilter.sortTableNames(RiderSequenceFilter.java:72)
        at com.github.database.rider.core.api.dataset.RiderSequenceFilter.<init>(RiderSequenceFilter.java:34)
        at com.github.database.rider.core.dataset.DataSetExecutorImpl.performSequenceFiltering(DataSetExecutorImpl.java:323)
        at com.github.database.rider.core.dataset.DataSetExecutorImpl.createDataSet(DataSetExecutorImpl.java:129)
        ... 4 more
Caused by: org.dbunit.util.search.SearchException: org.postgresql.util.PSQLException: An I/O error occurred while sending to the backend.
        at org.dbunit.database.search.AbstractMetaDataBasedSearchCallback.getNodes(AbstractMetaDataBasedSearchCallback.java:221)
        at org.dbunit.database.search.AbstractMetaDataBasedSearchCallback.getNodes(AbstractMetaDataBasedSearchCallback.java:149)
        at org.dbunit.database.search.AbstractMetaDataBasedSearchCallback.getNodesFromImportedKeys(AbstractMetaDataBasedSearchCallback.java:99)
        at org.dbunit.database.search.ImportedKeysSearchCallback.getEdges(ImportedKeysSearchCallback.java:53)
        at org.dbunit.util.search.DepthFirstSearch.reverseSearch(DepthFirstSearch.java:264)
        at org.dbunit.util.search.DepthFirstSearch.search(DepthFirstSearch.java:148)
        at org.dbunit.util.search.DepthFirstSearch.search(DepthFirstSearch.java:104)
        at org.dbunit.database.search.TablesDependencyHelper.getDependentTables(TablesDependencyHelper.java:91)
        at org.dbunit.database.search.TablesDependencyHelper.getDependentTables(TablesDependencyHelper.java:72)
        at com.github.database.rider.core.api.dataset.RiderSequenceFilter.getDependencyInfo(RiderSequenceFilter.java:175)
        at com.github.database.rider.core.api.dataset.RiderSequenceFilter.sortTableNames(RiderSequenceFilter.java:68)
        ... 7 more
Caused by: org.postgresql.util.PSQLException: An I/O error occurred while sending to the backend.
        at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:394)
        at org.postgresql.jdbc.PgStatement.executeInternal(PgStatement.java:498)
        at org.postgresql.jdbc.PgStatement.execute(PgStatement.java:415)
        at org.postgresql.jdbc.PgStatement.executeWithFlags(PgStatement.java:335)
        at org.postgresql.jdbc.PgStatement.executeCachedSql(PgStatement.java:321)
        at org.postgresql.jdbc.PgStatement.executeWithFlags(PgStatement.java:297)
        at org.postgresql.jdbc.PgStatement.executeQuery(PgStatement.java:246)
        at org.postgresql.jdbc.PgDatabaseMetaData.getTables(PgDatabaseMetaData.java:1377)
        at com.zaxxer.hikari.pool.ProxyDatabaseMetaData.getTables(ProxyDatabaseMetaData.java:67)
        at com.zaxxer.hikari.pool.HikariProxyDatabaseMetaData.getTables(HikariProxyDatabaseMetaData.java)
        at org.dbunit.database.DefaultMetadataHandler.tableExists(DefaultMetadataHandler.java:119)
        at org.dbunit.database.search.AbstractMetaDataBasedSearchCallback.getNodes(AbstractMetaDataBasedSearchCallback.java:184)
        ... 17 more
Caused by: java.io.EOFException
        at org.postgresql.core.PGStream.receiveChar(PGStream.java:467)
        at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:2154)
        at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:367)
        ... 28 more

[INFO] 
[INFO] Results:
[INFO] 
[ERROR] Errors: 
[ERROR]   UserRepositoryTest.shouldFindUserById » Runtime Could not create dataset for test 'shouldFindUserById'.
[INFO] 
[ERROR] Tests run: 2, Failures: 0, Errors: 1, Skipped: 0
[INFO] 
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  13.035 s
[INFO] Finished at: 2024-04-14T02:40:11+03:00
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:3.1.2:test (default-test) on project jpa_test: 
[ERROR] 
[ERROR] Please refer to /Users/romancherepanov/Projects/stack-overflow/jpa-testcontainer-dbrider-tests/target/surefire-reports for the individual test results.
[ERROR] Please refer to dump files (if any exist) [date].dump, [date]-jvmRun[N].dump and [date].dumpstream.
[ERROR] -> [Help 1]
[ERROR] 
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException

I have fixed this issue adding cacheConnection: false parameter to Database Rider configuration:

dbunit.yml:

cacheConnection: false
properties:
  caseSensitiveTableNames: true
  escapePattern: '"'