【发布时间】:2013-07-25 13:38:11
【问题描述】:
我正在使用 com.sun.jersey.test.framework.JerseyTest 为我的 Jersey 应用程序创建 JUnit 测试。该应用程序使用 Neo4j 和 Spring Data 来加载数据并通过 REST API 返回。
测试使用我的 jersey neo4j spring data webapp 启动一个嵌入式 grizzly 服务器。之后,我可以调用休息请求并在 neo4j 数据库中创建节点。 不幸的是,我的测试目前固定到单个 neo4j 数据库位置,因为这是在我的 applicationContext.xml 中配置的,如下所示:
<neo4j:config storeDirectory="/tmp/myapp/neo4jdb" />
如果我同时执行类似的测试,我的测试将失败,因为将使用相同的目录并且只有一个 neo4j 可以获得锁。
我知道 SpringJUnit4ClassRunner,但我不能使用它,因为我的嵌入式服务器中已经有一个 neo4j 实例在运行。
@ContextConfiguration(locations = "classpath:/spring/applicationContext.xml")
@RunWith(SpringJUnit4ClassRunner.class)
@Transactional
测试应该在随机目录中创建一个 neo4j 数据库。
问题:
- 有什么办法可以更改storeDirectory 并清除到neo4j 数据库。在 setupOnce 中更改 storeDirectory 也会有所帮助。
- 有什么办法可以清除neo4j数据库。 (我无法在我的测试中自动装配,因为它不是 Spring 上下文的一部分)
【问题讨论】:
-
有没有办法使用spring容器扩展点,static.springsource.org/spring/docs/3.2.x/…?
标签: multithreading junit jersey neo4j spring-data