在我的Sping Boot 1.5.1应用程序中,我将为Cassandra相关逻辑编写单元/集成测试。
我添加了以下Maven依赖项:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-cassandra</artifactId>
</dependency>
默认的Sping Boot Cassandra配置将与真实的的Cassandra DB服务器连接。
在Spring/Sping Boot 中是否有任何选项可以配置我的测试使用嵌入式Cassandra服务器?如果有,请显示所需的配置。
4条答案
按热度按时间gfttwv5a1#
我们在项目中使用Cassandra + Sping Boot 。以下是对我们有效的步骤:
a)按如下方式配置测试
B)在您的src/test/resources/ www.example.com中application.properties,添加以下内容(请注意,嵌入式cassandra在端口9142上启动,而不是默认的9042)
c)在src/test/resources中创建空文件bootstrap_test.cql
d)添加到pom.xml
这应该足以运行您的测试与嵌入式 cassandra 。希望它有帮助。
wvyml7n52#
Sping Boot 中没有嵌入式Apache Cassandra支持,也没有计划这样做。一方面,对嵌入式Apache Cassandra的需求很少,另一方面,Apache Cassandra附带了很多依赖项,这些依赖项与Boot的其他依赖项冲突。
看一下Cassandra Unit。
在使用JUnit测试时,您还可以构建自己的测试规则,让您完全控制Apache Cassandra的版本、运行时行为等。CassandraRule.java.
t0ybt7op3#
我知道这是一个老主题但是有两种方法可以将嵌入式Cassandra与Spring结合使用。
1.第一种方法是使用Cassandra单位Spring
我已经创建了一个示例应用程序,您可以查看下面的Github存储库。
注意:嵌入式服务器从9142端口启动,而不是从9042端口启动!!!
2.第二种方法是使用***maven-plugin***
步骤1:
将以下maven插件添加到pom.xml
步骤2:
在项目的根目录下创建cassandra/cql目录。嵌入式Cassandra服务器将从该目录初始化数据库。
重要提示:此目录中得所有文件都是.cql文件.
步骤3:
创建集成测试。
重要提示:****surfire插件仅将带有IT后缀的测试类解释为集成测试。
步骤4:
***mvn verify*运行集成测试
jm2pwxwz4#
OP的解决方案不再适用于最新版本的Sping Boot ,因为
CassandraUnitDependencyInjectionTestExecutionListener
来自于只能与JUnit 4一起工作的cassandra-unit-spring,而世界已经转移到了JUnit 5。我已经创建了一个cassandra-unit-spring库,用于启动Cassandra服务器,并使端口作为Sping Boot 环境属性可用。