1

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

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

作为数据驱动测试的一部分,对于输入测试数据,哪一个比较好,是 xml 文件还是 sql server db。

如果我们使用 db,最好有一些 ORM(NHibernate) 用于 db 连接。

谢谢

4

5 回答 5

3

带有 csv 的 nunit 中的数据驱动测试

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 Test
XUnit

于 2012-05-11T04:44:44.673 回答
0

看看哪个适合您的账单。

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

如果您对 XML 更满意,那就去做吧。

当它成为一个问题时,考虑一下长时间的运行。您不是在使用 Selenium 编写单元测试,而是在编写集成 UI 测试。因此,它们通常在夜间运行,因此长时间运行很少成为问题。

就个人而言,在这里,我们使用 LINQ2SQL 并且对于我跳到 SQL 服务器数据库的任何数据,它工作正常 - 只要您的查询不傻,性能影响很小。

于 2012-05-10T11:00:50.200 回答
0

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

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

于 2012-05-10T21:50:08.443 回答
0

考虑使用 Mockobjects 来模拟数据,试试这些链接:

于 2012-05-11T04:22:29.853 回答
0

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

存储在 json 中会有以下好处。

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

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

于 2019-03-30T18:26:06.610 回答