我们有一个使用Entity Code First的应用程序,我们添加了Devart for Oracle支持。我们有一系列集成测试,贯穿Visual Studio测试运行器,涵盖种子数据测试。我们希望能够在测试执行时为SQL Server和Oracle运行这些测试。有没有人有一个很好的角度来接近这个?
答案 0 :(得分:1)
您可以从配置文件中读取连接字符串和其他设置信息。
根据数据库/设置创建配置文件。
创建一个命令文件,每次配置执行两次测试。
答案 1 :(得分:0)
好吧,如果您想要不同的环境设置但仍然只编写一次测试但运行多次,那么Data Driven test怎么样?
您可以使用[DataSource]
属性修饰测试。数据源本身可以是excel文件,CSV等,文件可以包含连接字符串以及其他相关信息以配置环境。
在每次测试运行中,您将拥有一个代表您的环境数据的DataRow。
如果您正在使用NUnit,使用[ValueSource]
属性,并提供来自某些存储位置的数据,文件,返回值的类的静态方法等,也可以实现相同的目标。
使用这些设置中的任何一个,测试实际上将运行MULTIPLE次,以便每个环境都可以失败或单独传递。
这也是测试一个逻辑但具有不同场景和预期输出的非常好的方法。您可以在外部数据源中拥有输入和预期输出,并让测试框架贯穿所有方案并确保它们仍然按预期工作。这对于您想要检查可能已知结果的财务算法或者excel中的相同算法(例如,在您有数百个方案需要比较的情况下)进行黑盒测试可能很有用。
这显然不是说你不应该为隔离类编写实际的单元测试,它只是添加到工具箱的另一个工具。