首页 > 解决方案 > 如何在 DBFit 中管理不同的 DBMS?

问题描述

对不起我的英语,我说西班牙语。

我有一个用于 Oracle 的测试套件,现在我需要维护相同的套件,但也需要为 SQLServer 维护。

查询相同,但略有不同(日期函数等)。

管理需要多 dbms 的套件的最佳方法是什么?

谢谢

标签: fitnessedbfit

解决方案


我没有任何使用 DbFit 的经验,所以我的回答很笼统。希望您可以将其用作您的确切问题的基础。

对我来说,管理略有不同的测试套件会让人想起以下方法之一:

  1. 使用符号链接维护一组页面,为每个环境创建一个套件(子 wiki)。这些页面定义了测试用例,每个环境都有一个定义符号(“wiki 变量”)的根页面和一个指向页面集的链接。
  2. (使用 Slim 时)每个环境/数据库系统使用不同的场景。您可以根据当前应测试的内容包含定义场景的不同页面(每个定义具有相同名称但具有不同定义的场景)。或者在你的场景调用中使用符号来根据当前环境调用不同的场景。当然,在这两种情况下,您都可以共享适用于所有情况的场景。
  3. 为每个环境使用不同的夹具,允许相同方法的不同实现。

我相信您对 DbFit 的使用不包括选项 2 和 3,因此选项 1 似乎是要选择的选项。具体来说,我认为这将意味着定义!define QUERY_1 {...}查询部分的符号(例如)和需要根据 DBMS 变化的连接字符串。在测试用例中,您不会对它们进行硬编码,而是包含对符号的引用(例如${QUERY_1})。(另请参阅我对可以在页面中使用 FitNesse 页面标签的回答吗? )

但当然,这一切都取决于您的测试需求究竟是什么。我倾向于使用 FitNesse 对应用程序进行验收测试。所以我会测试应用程序最终用户或服务/API 功能,而不是数据库查询。在这种情况下,我不会针对所有要测试的 DBMS 运行所有测试(我希望数据库层组件测试针对所有数据库测试所有查询)。我会针对一个 DBMS 运行大部分验收套件,针对其他 DBMS 运行非常有限的一套。


推荐阅读