DEV Community

Jasper Aurelio Villas
Jasper Aurelio Villas

Posted on

CI workflow failed - needs embedded database for testing

Please find a solution for failing job 41828853940. Use the logs, job definition, and any referenced files where the failure occurred. Keep your response focused on the solution and include code suggestions when appropriate.
1 reference
The error indicates that the application failed to start due to a missing database configuration during the test execution. Specifically, Spring Boot could not determine a suitable driver class and failed to configure a DataSource. This likely means that the necessary database settings (e.g., url, username, password) are missing or improperly configured in your test environment.

Solution:
Provide Test Database Configuration: Ensure that the application.properties or application.yml file used for testing includes a valid database configuration. Alternatively, if you're using an embedded database (like H2), ensure it's on the classpath.

Example src/test/resources/application.properties:

properties

spring.datasource.url=jdbc:h2:mem:testdb
spring.datasource.driver-class-name=org.h2.Driver
spring.datasource.username=sa
spring.datasource.password=
spring.jpa.database-platform=org.hibernate.dialect.H2Dialect
Enter fullscreen mode Exit fullscreen mode

Check Active Profiles: The logs mention that no profiles are currently active. If database settings are tied to a specific profile, activate it during testing. You can do this by adding the spring.profiles.active property.

Example:

properties
spring.profiles.active=test
Enter fullscreen mode Exit fullscreen mode

Add H2 Dependency (If Using Embedded Database): If H2 is used as the test database, add the following dependency to your pom.xml:

XML
<dependency>
    <groupId>com.h2database</groupId>
    <artifactId>h2</artifactId>
    <scope>test</scope>
</dependency>
Enter fullscreen mode Exit fullscreen mode

Adjust Workflow Configuration: Modify the workflow file to ensure that the correct profile or configuration is used during tests. Update the Run tests step in .github/workflows/backend-ci.yml:

YAML
- name: Run tests
  run: mvn test --no-transfer-progress -Dspring.profiles.active=test
Enter fullscreen mode Exit fullscreen mode

Verify Test Class Annotations: Ensure that the FutureSeedBackendApplicationTests class is annotated correctly to load the appropriate context for testing. For example:

Java
@SpringBootTest
@ActiveProfiles("test") // Ensure the 'test' profile is active
public class FutureSeedBackendApplicationTests {
}
Enter fullscreen mode Exit fullscreen mode

Next Steps:
Implement the changes above.
Re-run the workflow to verify that the issue is resolved.
Would you like me to help retrieve or review any related configuration files?

Top comments (0)