在我的SpringBoot1.5.1应用程序中,我将为Cassandra相关逻辑编写单元/集成测试。
我增加了对Maven的依赖:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-cassandra</artifactId>
</dependency>默认的配置将与一个真正的Cassandra服务器连接。
Spring/Spring中是否有任何选项来配置我的测试以使用嵌入式Cassandra服务器?如果是,请您显示所需的配置。
发布于 2018-04-11 01:08:25
我们在卡桑德拉+ 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 {( b)在src/test/resources/ add . port中,添加以下内容(请注意,嵌入式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>这应该足以运行您的测试嵌入卡桑德拉。希望能帮上忙。
发布于 2017-02-13 21:22:54
Spring中没有嵌入式支持,也没有计划。一方面,对嵌入式Apache的需求很少,另一方面,Apache提供了许多与Boot的其他依赖项相冲突的依赖关系。
看看卡桑德拉股。
在使用JUnit测试时,您还可以构建自己的测试规则,使您能够完全控制版本、运行时行为等等。看看一个可能的实现:CassandraRule.java。
发布于 2019-09-12 12:09:08
我知道这是一个古老的话题,但是有两种方法可以在Spring中使用嵌入式Cassandra。
1.第一种方法是使用Cassandra单元Spring
我已经创建了一个示例应用程序,您可以查看下面的Github存储库。
备注:嵌入式服务器启动于9142端口,而不是9042端口!
2.第二种方法是使用maven-plugin。
步骤1:
将以下maven插件添加到pom.xml中
<plugin>
<artifactId>maven-failsafe-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>integration-test</goal>
<goal>verify</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>cassandra-maven-plugin</artifactId>
<version>3.6</version>
<executions>
<execution>
<goals>
<goal>start</goal>
<goal>stop</goal>
</goals>
</execution>
</executions>
<configuration>
<startNativeTransport>true</startNativeTransport>
</configuration>
</plugin>步骤2:
在项目的根级创建cassandra/cql目录。从这个目录,嵌入式Cassandra服务器将初始化您的数据库。
重要:这个目录中的所有文件都是.cql文件。
示例: cassandra/cql/load.cql
步骤3:
创建集成测试。
重要:只有带有IT后缀的测试类被surfire插件解释为集成测试。
步骤4:
mvn验证以运行集成测试
https://stackoverflow.com/questions/42212959
复制相似问题