繁体   English   中英

使用NUnit进行数据驱动测试

[英]Data Driven Testing With NUnit

需要有关数据驱动测试自动化的建议

我正在使用C#ann Nunits进行测试自动化,用于使用MVC开发的Web应用程序。 我们正在使用Selenium web驱动程序。

作为数据驱动测试的一部分,哪一个适用于输入测试数据的是xml文件或sql server db。

如果我们使用db,那么对于db连接有一些ORM(NHibernate)是好的。

谢谢

数据驱动的测试功能于NUnit的与- CSV

NUnit中的参数化测试

如何使用

   [Test, TestCaseSource("GetTestData")]
    public void MyExample_Test(int data1, int data2, int expectedOutput)
    {
        var methodOutput = MethodUnderTest(data2, data1);
        Assert.AreEqual(expectedOutput, methodOutput, string.Format("Method failed for data1: {0}, data2: {1}", data1, data2));
    }


    private IEnumerable<int[]> GetTestData()
    {
         while (data.ReadNext()) // Use your custom logic based on Stream to get new data (basically Implement IEnumerator on data class)
          yield return new[] { data.Current };
    }

其他测试框架
MS测试
的xUnit

查看您的账单中的任何一个。

如果你有一个好的ORM,并且你对它感到满意,那就使用它。

如果您对XML更熟悉 - 那就去做吧。

当它成为问题时,请考虑长时间运行。 你没有用Selenium编写单元测试,你正在编写集成UI测试。 因此,无论如何它们通常在晚上运行,因此长时间运行很少成为问题。

就个人而言,在这里,我们使用LINQ2SQL,对于任何数据,我都会跳转到SQL服务器数据库,它运行正常 - 提供您的查询并不愚蠢,性能影响不大。

我的建议是将测试数据捆绑到单元测试夹具本身。 每种测试方法的设置将设置测试的初始状态(数据); 并且拆解将清理它(如有必要)。

尝试维护外部数据文件并使其与单元测试代码保持一致是一件麻烦事。 (YMMV - 这是我个人经验的建议。)

考虑将测试数据存储在嵌入式json文件中,而不是excel或数据库中。

存储在json中将具有以下好处。

  1. 由于模式,测试代码没有任何阻碍
  2. 没有连接问题
  3. 测试数据将作为项目的一部分提供

为在嵌入式json文件中管理测试数据提供了很好的支持

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM