我正在编写一个集成测试,该测试应使用基于Couchbase的容器。
将org.testcontainers.couchbase.CouchbaseContainer
与
@Rule
public CouchbaseContainer couchbaseContainer = new CouchbaseContainer()
.withNewBucket(DefaultBucketSettings.builder()
.enableFlush(true)
.name("xxx").password("123456")
.quota(100)
.type(BucketType.COUCHBASE)
.build());
我得到一个错误: 引起原因:com.couchbase.client.java.error.InvalidPasswordException:存储段“ xxx”的密码不匹配。 在com.couchbase.client.java.CouchbaseAsyncCluster $ OpenBucketErrorHandler.call(CouchbaseAsyncCluster.java:651)
当我查看容器内部时,可以看到没有用户创建的存储桶。 (为了能够使用该存储桶,必须创建一个具有相同名称的用户,并且该用户的密码实际上是进入该存储桶的密码)。 虽然不提供UserSettings,但withNewBucket方法会生成具有所有角色的用户。我尝试添加自定义UserSettings,但结果是相同的-未创建用户。
使用
<dependency>
<groupId>com.couchbase.client</groupId>
<artifactId>couchbase-client</artifactId>
<version>1.4.13</version>
</dependency>
<dependency>
<groupId>org.testcontainers</groupId>
<artifactId>testcontainers</artifactId>
<version>1.9.0</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.testcontainers</groupId>
<artifactId>couchbase</artifactId>
<version>1.9.0</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.testcontainers</groupId>
<artifactId>jdbc</artifactId>
<version>1.9.0</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.couchbase.client</groupId>
<artifactId>java-client</artifactId>
<version>2.5.9</version>
</dependency>
感谢您的帮助。