我们有一个使用实体代码优先的应用程序,并且我们添加了 Devart for Oracle 支持。我们有一系列通过 Visual Studio 测试运行程序运行的集成测试,涵盖种子数据测试。我们希望能够在测试执行时为 SQL Server 和 Oracle 运行这些测试。有没有人有一个很好的角度来解决这个问题?
问问题
481 次
2 回答
1
您可以从配置文件中读取连接字符串和其他设置信息。
为每个数据库/设置创建一个配置文件。
制作一个命令文件,每次配置执行两次测试。
于 2012-12-20T06:41:12.167 回答
0
好吧,如果你想要不同的环境设置但仍然只编写一次测试但运行多次,那么数据驱动测试怎么样?
[DataSource]
您可以使用该属性装饰您的测试。数据源本身可以是 excel 文件、CSV 等,并且该文件可以包含连接字符串以及其他相关信息,以便配置环境。
在每次测试运行中,您将拥有一个代表您的环境数据的 DataRow。
[ValueSource]
如果您也使用 NUnit,使用属性,并提供来自某个存储位置、文件、类返回值的静态方法等的数据,则同样可以完成。
使用这些设置中的任何一个,测试实际上将运行多次,因此每个环境都可以单独失败或通过。
这也是一种非常好的方法来测试一个逻辑,但具有不同的场景和预期的输出。您可以在外部数据源中拥有输入和预期输出,并让测试框架在所有场景中运行,并确保它们仍然按预期工作。这对于对您想要检查可能已知结果的金融算法或 excel 中的相同算法(例如,在您有数百个场景要比较的情况下)进行黑盒测试可能很有用。
这显然不是说您不应该为隔离类编写实际的单元测试,它只是添加到工具箱中的另一个工具。
于 2012-12-20T06:47:38.937 回答