【发布时间】:2021-08-22 23:08:46
【问题描述】:
请帮助我们解决这个问题。
我们有一个数据迁移系统,可以将数据从不同的来源迁移到目标。比如从Oracle到Db2,从Postgres到Kafka,从MySQL到Hadoop等等。
在我们的特征文件中,我们可以有以下逻辑:
Scenario: Test data migraiton
Given I have the following source to target mapping
| source | target |
| Oracle | Db2 |
| Postgres | Kafka |
| MySql | Hadoop |
When I try to run migration basic test
Then I get abc
...
Then I get xyz
对于用户 1,如果他们添加了与 Oracle 源代码相关的代码,他们可能不关心在签入之前运行完整的套件。所以我的想法是让所有用户的功能文件保持相同,但提供配置文件,用户可以在其中调整他们关心的数据库并只为这些数据库运行测试。
文件如下所示:
books:
Oracle:
credentials:<database credentials>
url:<url>
Db2:
credentials:<database credentials>
url:<url>
请注意,它缺少 Kafka、Hadoop、MySQL 和 Postgres 的详细信息。
另一方面,构建系统可能想要运行整个测试套件,因此完整的 configuration.yaml 文件可以解决该问题。
我希望有一种方法可以有效地解决这个问题,而无需到处检查是否在配置 yaml 中定义了当前 {source,target}。如果不是,请跳过该组合的测试。
【问题讨论】:
-
这听起来像xyproblem.info 为什么会有不同的用户使用不同的配置?您正在测试的功能是什么。
-
编辑了问题。让我知道现在是否有意义。
标签: java cucumber bdd cucumber-jvm cucumber-java