在顺序 运行 空手道测试之间保留数据库
Persist database between sequentially running Karate tests
我有一个 GraphQL 服务,我正在使用 Karate 进行测试。我有一个突变特性和几个查询特性。我正在进行 Spring 启动集成测试,就像这样
@SpringBootTest(classes=ApplicationTest.class, webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
public class RunUnitCukeTest implements InitializingBean {
@LocalServerPort
int port;
@Karate.Test
Karate runTest() {
return new Karate()//
.feature("classpath:features/TestMutationsAndDatabaseSetup.feature")
.feature("classpath:features/Queries.feature");
}
我的想法是,与其用代码将一堆数据暂存到我的 H2 数据库中,不如先测试我的突变(从而暂存一些数据),然后测试我的 queries/the 计算这些查询需要做的。
当我的突变具有 运行 时,一切正常。但是我的查询功能没有看到任何数据。这让我想知道它们是否按照我想要的相反顺序排列 运行,以及是否有任何方法可以让它们按顺序排列 运行。
好吧,也许你应该先阅读以下内容:
也许你应该做的是在 karate-config.js
中使用 karate.callSingle()
进行突变,然后开始其余的测试。
是的,空手道旨在 运行 并行测试并强制您在 Scenario
-s 之间没有依赖关系,更不用说 Feature
-s 了。
请注意,@Karate.Test
注释不是 CI 中 运行 测试套件的推荐方式: - 我认为它不尊重您调用 feature()
.
的顺序
如果突变流是纯粹的“设置”,只需在 运行 设置“主”套件之前在 JUnit 代码中调用它:
我有一个 GraphQL 服务,我正在使用 Karate 进行测试。我有一个突变特性和几个查询特性。我正在进行 Spring 启动集成测试,就像这样
@SpringBootTest(classes=ApplicationTest.class, webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
public class RunUnitCukeTest implements InitializingBean {
@LocalServerPort
int port;
@Karate.Test
Karate runTest() {
return new Karate()//
.feature("classpath:features/TestMutationsAndDatabaseSetup.feature")
.feature("classpath:features/Queries.feature");
}
我的想法是,与其用代码将一堆数据暂存到我的 H2 数据库中,不如先测试我的突变(从而暂存一些数据),然后测试我的 queries/the 计算这些查询需要做的。
当我的突变具有 运行 时,一切正常。但是我的查询功能没有看到任何数据。这让我想知道它们是否按照我想要的相反顺序排列 运行,以及是否有任何方法可以让它们按顺序排列 运行。
好吧,也许你应该先阅读以下内容:
也许你应该做的是在 karate-config.js
中使用 karate.callSingle()
进行突变,然后开始其余的测试。
是的,空手道旨在 运行 并行测试并强制您在 Scenario
-s 之间没有依赖关系,更不用说 Feature
-s 了。
请注意,@Karate.Test
注释不是 CI 中 运行 测试套件的推荐方式:feature()
.
如果突变流是纯粹的“设置”,只需在 运行 设置“主”套件之前在 JUnit 代码中调用它: