每个连接字符串运行C#集成测试

时间:2012-11-28 20:07:20

标签: c# sql-server oracle integration-testing devart

我们有一个使用Entity Code First的应用程序,我们添加了Devart for Oracle支持。我们有一系列集成测试,贯穿Visual Studio测试运行器,涵盖种子数据测试。我们希望能够在测试执行时为SQL Server和Oracle运行这些测试。有没有人有一个很好的角度来接近这个?

2 个答案:

答案 0 :(得分:1)

您可以从配置文件中读取连接字符串和其他设置信息。

根据数据库/设置创建配置文件。

创建一个命令文件,每次配置执行两次测试。

答案 1 :(得分:0)

好吧,如果您想要不同的环境设置但仍然只编写一次测试但运行多次,那么Data Driven test怎么样?

您可以使用[DataSource]属性修饰测试。数据源本身可以是excel文件,CSV等,文件可以包含连接字符串以及其他相关信息以配置环境。

在每次测试运行中,您将拥有一个代表您的环境数据的DataRow。

如果您正在使用NUnit,使用[ValueSource]属性,并提供来自某些存储位置的数据,文件,返回值的类的静态方法等,也可以实现相同的目标。

使用这些设置中的任何一个,测试实际上将运行MULTIPLE次,以便每个环境都可以失败或单独传递。

这也是测试一个逻辑但具有不同场景和预期输出的非常好的方法。您可以在外部数据源中拥有输入和预期输出,并让测试框架贯穿所有方案并确保它们仍然按预期工作。这对于您想要检查可能已知结果的财务算法或者excel中的相同算法(例如,在您有数百个方案需要比较的情况下)进行黑盒测试可能很有用。

这显然不是说你不应该为隔离类编写实际的单元测试,它只是添加到工具箱的另一个工具。