我想针对不同的数据库运行 teambuild 的单元测试(不止一次),例如我想测试我的构建编译,然后针对 SQLServer、Oracle 等数据库运行相同的测试套件。
我很确定我可以做一些笨拙的事情,比如针对第一个配置文件构建/测试然后针对第二个配置文件构建/测试等,但我正在寻找更优雅的东西(最好没有毫无意义的第二次重新编译)。
我想针对不同的数据库运行 teambuild 的单元测试(不止一次),例如我想测试我的构建编译,然后针对 SQLServer、Oracle 等数据库运行相同的测试套件。
我很确定我可以做一些笨拙的事情,比如针对第一个配置文件构建/测试然后针对第二个配置文件构建/测试等,但我正在寻找更优雅的东西(最好没有毫无意义的第二次重新编译)。
您需要为每种数据库类型进行单独的单元测试(这些被认为是系统测试,实际上 - 因为它们涉及数据库)。如果相同的单元测试可能在 1 个 DB 平台上失败并在另一个平台上通过,那么当您查看通过/失败状态以及该测试随时间推移的测试结果历史记录时,它并不能告诉您任何足够具体的信息。
否则,请考虑以这样一种方式解耦或抽象数据库连接,以便您可以在设置测试时以编程方式更改它(请参阅 MSTEST单元测试框架中的 [ClassInitialize()] 和 [TestInitialize()] 属性)。
优雅的解决方案是不依赖数据库进行单元测试;为检查您正在调用的查询和过程返回的数据的数据库创建单独的测试。
Visual Studio 2010 Premium能够运行单元测试来验证 SQL Server 2005(及更高版本)数据库的数据和行为。如果您还找不到测试 Oracle Dbs 的工具或推出自己的测试返回内容的系统,我会感到惊讶(类似ndbUnit的东西可能会有所帮助)