testcontainers - 由于测试失败,maven 构建失败

testcontainers - maven build fails due to test failures

我的开发环境(JDK,Maven)是在 WSL2 中设置的。使用此设置,有测试失败

下面是构建过程的输出。

00:18:14.261 [main] DEBUG org.springframework.test.annotation.ProfileValueUtils - Retrieved @ProfileValueSourceConfiguration [null] for test class [com.sudhirt.practice.testcontainers.repository.DatabaseTests]        00:18:14.263 [main] DEBUG org.springframework.test.annotation.ProfileValueUtils - Retrieved ProfileValueSource type [class org.springframework.test.annotation.SystemProfileValueSource] for class [com.sudhirt.practice.testcontainers.repository.DatabaseTests]
00:18:14.267 [main] DEBUG org.springframework.test.annotation.ProfileValueUtils - Retrieved @ProfileValueSourceConfiguration [null] for test class [com.sudhirt.practice.testcontainers.repository.DatabaseTests]        00:18:14.268 [main] DEBUG org.springframework.test.annotation.ProfileValueUtils - Retrieved ProfileValueSource type [class org.springframework.test.annotation.SystemProfileValueSource] for class [com.sudhirt.practice.testcontainers.repository.DatabaseTests]
00:18:14.271 [main] DEBUG org.springframework.test.annotation.ProfileValueUtils - Retrieved @ProfileValueSourceConfiguration [null] for test class [com.sudhirt.practice.testcontainers.repository.DatabaseTests]
00:18:14.272 [main] DEBUG org.springframework.test.annotation.ProfileValueUtils - Retrieved ProfileValueSource type [class org.springframework.test.annotation.SystemProfileValueSource] for class [com.sudhirt.practice.testcontainers.repository.DatabaseTests]
00:18:14.303 [main] DEBUG org.testcontainers.utility.TestcontainersConfiguration - Testcontainers configuration overrides will be loaded from file:/home/sudhirtumati/.testcontainers.properties
[ERROR] Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 1.155 s <<< FAILURE! - in com.sudhirt.practice.testcontainers.repository.DatabaseTests
[ERROR] com.sudhirt.practice.testcontainers.repository.DatabaseTests  Time elapsed: 1.151 s  <<< ERROR!                                                                                                                  java.lang.ExceptionInInitializerError
        at com.sudhirt.practice.testcontainers.repository.DatabaseTests.<clinit>(DatabaseTests.java:23)

[INFO]
[INFO] Results:
[INFO]                                                                                                                                                                                                                   [ERROR] Errors:                                                                                                                                                                                                          [ERROR]   DatabaseTests.com.sudhirt.practice.testcontainers.repository.DatabaseTests » ExceptionInInitializer                                                                                                            [INFO]                                                                                                                                                                                                                   [ERROR] Tests run: 1, Failures: 0, Errors: 1, Skipped: 0                                                                                                                                                                 [INFO]                                                                                                                                                                                                                   [INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE

DatabaseTests 的第 23 行是:

@ClassRule
public static OracleContainer oracleContainer = new OracleContainer();

完整的源代码可在 github 上找到。

有什么解决这个问题的建议吗?

来自 Oracle-XE Module 的文档:

If you do not pass an image name to the OracleContainer constructor, a suitable image name should be placed in configuration instead. To do this, please place a file on the classpath named testcontainers.properties, containing oracle.container.image=IMAGE, where IMAGE is a suitable image name and tag.

我在您的代码中没有看到任何执行此操作的内容。 new OracleContainer() 不够。