gpt4 book ai didi

c# - NUnit 中的数据驱动测试?

转载 作者:可可西里 更新时间:2023-11-01 08:20:12 24 4
gpt4 key购买 nike

在 MSTest 中,您可以执行以下操作:

[TestMethod]
[DataSource("Microsoft.VisualStudio.TestTools.DataSource.CSV",
"testdata.csv", "testdata#csv", DataAccessMethod.Sequential)]
public void TestSomething()
{
double column1 = Convert.ToDouble(TestContext.DataRow["column1"]);
...
Assert.AreEqual(...);
}

NUnit 2.5 中的等效代码是什么?

最佳答案

我在 NUnit 中进行了基于 csv 的数据驱动测试,工作方式如下:

使用 csv reader from code project ,包装在一个在您的测试类中返回 IEnumerable 的私有(private)方法中,然后在您的测试用例中使用 TestCaseSource 属性引用它。将您的 csv 文件包含在您的项目中,并将“复制到输出目录”设置为“始终复制”

using System.Collections.Generic;
using System.IO;
using LumenWorks.Framework.IO.Csv;
using NUnit.Framework;

namespace mytests
{
class MegaTests
{
[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 int MethodUnderTest(int data2, int data1)
{
return 42; //todo: real implementation
}

private IEnumerable<int[]> GetTestData()
{
using (var csv = new CsvReader(new StreamReader("test-data.csv"), true))
{
while (csv.ReadNextRecord())
{
int data1 = int.Parse(csv[0]);
int data2 = int.Parse(csv[1]);
int expectedOutput = int.Parse(csv[2]);
yield return new[] { data1, data2, expectedOutput };
}
}
}
}
}

原始帖子:http://timwise.blogspot.com/2011/05/data-driven-test-in-nunit-with-csv.html

关于c# - NUnit 中的数据驱动测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4036840/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com