我们正在为我们的数据库创建集成Spring Boot 2.1.7.RELEASE测试Couchbase。我们正在使用测试容器,当测试运行完成时,我们收到此错误:java.util.concurrent.RejectedExecutionException:任务 java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask@da0432 被 java.util.concurrent.ScheduledThreadPoolExecutor@238be2 拒绝[已终止,池大小 = 0,活动线程 = 0,排队任务 = 0,已完成任务= 0]在我们的 pom 中: <dependency> <groupId>org.testcontainers</groupId> <artifactId>couchbase</artifactId> <version>1.12.1</version> <scope>test</scope> </dependency> <dependency> <groupId>org.testcontainers</groupId> <artifactId>testcontainers</artifactId> <version>1.12.1</version> <scope>test</scope> </dependency>在我们的“集成测试配置”类中:@RunWith(SpringRunner.class)@SpringBootTest(classes = {MyApplication.class, IntegrationTestConfig.CouchbaseTestConfig.class}, webEnvironment = SpringBootTest.WebEnvironment.DEFINED_PORT)public abstract class IntegrationTestConfig{@ClassRulepublic static CouchbaseContainer couchbaseContainer = new CouchbaseContainer() .withIndex(true) .withQuery(true) .withClusterAdmin("clusterUser", "clusterPassword") .withNewBucket(DefaultBucketSettings.builder() .enableFlush(true) .name("bucketName") .password("bucketPassword") .quota(100) .replicas(0) .type(BucketType.COUCHBASE) .build());@BeforeClasspublic static void beforeClass() throws IOException{ log.debug("Starting containers..."); couchbaseContainer.start();}@AfterClasspublic static void afterClass(){ log.debug("Stopping containers..."); couchbaseContainer.stop();}
2 回答
四季花海
TA贡献1811条经验 获得超5个赞
因此,在这方面浪费了两天令人沮丧的时间后,事实证明问题出在以下函数上:
@AfterClass
public static void afterClass(){
log.debug("Stopping containers...");
couchbaseContainer.stop();
}
只需删除对
couchbaseContainer.stop();
解决了问题。
看起来,即使正在afterClass停止Couchbase容器,其他东西也在尝试停止它,如堆栈跟踪中所示:
at org.testcontainers.couchbase.CouchbaseContainer.stopCluster(CouchbaseContainer.java:198)
at org.testcontainers.couchbase.CouchbaseContainer.stop(CouchbaseContainer.java:193)
stop()所以实际上解决方案是从其中删除afterClass并让其他东西停止容器。
添加回答
举报
0/150
提交
取消