问题描述
对不起我的英语,我说西班牙语。
我有一个用于 Oracle 的测试套件,现在我需要维护相同的套件,但也用于 sqlServer。
谢谢
解决方法
我没有任何使用 DbFit 的经验,所以我的回答很笼统。希望您可以将其用作解决具体问题的基础。
对于管理稍微不同的测试套件,我想到了以下方法之一:
- 使用符号链接维护一组页面,以便为每个环境创建一个套件(子 wiki)。这些页面定义了测试用例,每个环境都有一个根页面,用于定义符号(“wiki 变量”)和指向一组页面的链接。
- (使用 Slim 时)针对每个环境/数据库系统使用不同的场景。您可以根据当前应测试的内容包括定义场景的不同页面(每个页面定义具有相同名称但具有不同定义的场景)。或者在你的场景调用中使用符号来根据当前环境调用不同的场景。当然,在这两种情况下,您都可以拥有适用于所有情况的共享方案。
- 为每个环境使用不同的装置,允许相同方法的不同实现。
我相信您对 DbFit 的使用排除了选项 2 和 3,因此选项 1 似乎是可行的。具体来说,我认为这意味着为查询部分定义符号(例如 !define QUERY_1 {...}
)和需要因 DBMS 而异的连接字符串。在测试用例中,您不对这些进行硬编码,而是包含对符号的引用(例如 ${QUERY_1}
)。 (另见我对Can FitNesse page tags be used in page?的回答)
当然,这一切都取决于您的测试需求到底是什么。我倾向于使用 FitNesse 对应用程序进行验收测试。所以我会测试应用程序最终用户或服务/API 功能,而不是数据库查询。在这种情况下,我不会针对所有要测试的 DBMS 运行所有测试(我希望数据库层组件测试针对所有数据库测试所有查询)。我会针对一个 DBMS 运行大部分验收套件,并针对其他 DBMS 运行非常有限的一组。