我们在项目中使用了Cassandra + Spring Boot。以下是我们使用的步骤:
a) 配置您的测试如下:
import org.cassandraunit.spring.CassandraDataSet;
import org.cassandraunit.spring.CassandraUnitDependencyInjectionTestExecutionListener;
import org.cassandraunit.spring.CassandraUnitTestExecutionListener;
import org.cassandraunit.spring.EmbeddedCassandra;
@RunWith(SpringRunner.class)
@SpringBootTest(classes = TestConfiguration.class)
@TestExecutionListeners(listeners = {
CassandraUnitDependencyInjectionTestExecutionListener.class,
CassandraUnitTestExecutionListener.class,
ServletTestExecutionListener.class,
DependencyInjectionTestExecutionListener.class,
DirtiesContextTestExecutionListener.class
})
@EmbeddedCassandra(timeout = 60000)
@CassandraDataSet(value = {"bootstrap_test.cql"}, keyspace = "local_test")
public abstract class BaseTest {
在您的src/test/resources/application.properties文件中添加以下内容(请注意,内嵌Cassandra在9142端口启动,而不是默认的9042端口)
b) 在您的src/test/resources/application.properties文件中添加此内容(请注意,嵌入式Cassandra在端口9142上启动,而不是默认的9042端口)
spring.data.cassandra.port=9142
spring.data.cassandra.keyspace-name=local_test
c) 在src/test/resources中创建一个名为bootstrap_test.cql的空文件
d) 将以下内容添加到您的pom.xml文件中
<dependency>
<groupId>org.cassandraunit</groupId>
<artifactId>cassandra-unit-spring</artifactId>
<version>${cassandra-unit.version}</version>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.cassandraunit</groupId>
<artifactId>cassandra-unit</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.cassandraunit</groupId>
<artifactId>cassandra-unit-spring</artifactId>
<version>${cassandra-unit.version}</version>
</dependency>
这应该足以通过嵌入式Cassandra运行您的测试。
希望它有所帮助。