首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >嵌入Cassandra的Spring数据

嵌入Cassandra的Spring数据
EN

Stack Overflow用户
提问于 2017-02-13 20:29:25
回答 4查看 13.4K关注 0票数 8

在我的SpringBoot1.5.1应用程序中,我将为Cassandra相关逻辑编写单元/集成测试。

我增加了对Maven的依赖:

代码语言:javascript
复制
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-cassandra</artifactId>
</dependency>

默认的配置将与一个真正的Cassandra服务器连接。

Spring/Spring中是否有任何选项来配置我的测试以使用嵌入式Cassandra服务器?如果是,请您显示所需的配置。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2018-04-11 01:08:25

我们在卡桑德拉+ Spring Boot项目上使用。以下是对我们有用的步骤:

( a)像这样配置测试

代码语言:javascript
复制
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)

代码语言:javascript
复制
spring.data.cassandra.port=9142
spring.data.cassandra.keyspace-name=local_test

( c)在src/test/resources中创建空文件bootstrap_test.cql

d)添加到pom.xml中

代码语言:javascript
复制
    <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>

这应该足以运行您的测试嵌入卡桑德拉。希望能帮上忙。

票数 12
EN

Stack Overflow用户

发布于 2017-02-13 21:22:54

Spring中没有嵌入式支持,也没有计划。一方面,对嵌入式Apache的需求很少,另一方面,Apache提供了许多与Boot的其他依赖项相冲突的依赖关系。

看看卡桑德拉股

在使用JUnit测试时,您还可以构建自己的测试规则,使您能够完全控制版本、运行时行为等等。看看一个可能的实现:CassandraRule.java

票数 3
EN

Stack Overflow用户

发布于 2019-09-12 12:09:08

我知道这是一个古老的话题,但是有两种方法可以在Spring中使用嵌入式Cassandra。

1.第一种方法是使用Cassandra单元Spring

我已经创建了一个示例应用程序,您可以查看下面的Github存储库。

备注:嵌入式服务器启动于9142端口,而不是9042端口!

2.第二种方法是使用maven-plugin

步骤1:

将以下maven插件添加到pom.xml

代码语言:javascript
复制
            <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验证以运行集成测试

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42212959

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档