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