我想针对不同的数据库运行teambuild的单元测试(不止一次),例如我想测试我的构建编译,然后针对SQLServer,然后是Oracle等数据库运行相同的测试套件。
我很确定我可以做一些笨拙的事情,例如构建/测试针对第一个配置文件然后构建/测试第二个配置文件等但我正在寻找更优雅的东西(最好没有毫无意义的第二次重新编译)
谢谢
答案 0 :(得分:1)
对于每种数据库类型,您都需要单独的单元测试(这些被认为是系统测试,实际上 - 因为它们涉及数据库)。如果相同的单元测试对于1 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可能有帮助的话),我会感到很惊讶。