gpt4 book ai didi

c# - 从 Excel 读取 NUnit 测试数据 - 如何访问测试数据?

转载 作者:行者123 更新时间:2023-11-30 22:06:02 28 4
gpt4 key购买 nike

我正在尝试使用此处介绍的 Excel 数据阅读器 http://fabiouechi.blogspot.fi/2010/07/excel-data-driven-tests-with-nunit.html为我的 NUnit 测试读取数据。

我的测试数据有几列 - 例如状态、运行、压力、p_prev、温度 - 在 excel 文件中有超过 200 行。

我正在使用以下代码来读取测试用例。

        public static IEnumerable<TestCaseData> TestCaseData_T3003
{
get
{
var testcases = ExcelTestCaseDataReader.New()
.FromFileSystem(@"C:\Tests\Test data.xlsx")
.AddSheet("T3003")
.GetTestCases(delegate(string sheet, DataRow row, int rowNum)
{
var testName = sheet + rowNum;
//var category = Convert.ToString(row["col1"]);
IDictionary testDataArgs = new Hashtable();
var testData = new TestCaseData(testDataArgs).SetName(testName);
return testData;
}
);

foreach (TestCaseData testCaseData in testcases)
{
yield return testCaseData;
}
}
}

public List<TestCaseData> GetTestCases(Func<string, DataRow, int, TestCaseData> testCaseDataCreator)
{
var testDataList = new List<TestCaseData>();
IExcelDataReader excelReader = GetExcelReader(ExcelFile);
excelReader.IsFirstRowAsColumnNames = true;
DataSet result = excelReader.AsDataSet();
foreach (var sheet in Sheets)
{
var sheetTable = result.Tables[sheet];
var i = 0;
foreach (DataRow dr in sheetTable.Rows)
{
testDataList.Add(testCaseDataCreator(sheet, dr, i));
i = i + 1;
}
}

excelReader.Close();
return testDataList;

}

而使用 excel 数据的实际测试仍然非常原始。

    [Test]
[TestCaseSource("TestCaseData_T3003")]
public void T3003_Excel(IDictionary testData)
{
//do the assertions here
}

问题是,我如何在我的测试过程中访问测试数据?如何引用列“状态”“压力” 中的值?

Nunit 找到了我的测试数据中的所有行,因为它运行了 214 次测试。但是,当我在 T3003_Excel 中调试代码和面包时,属性 testData.Count 为零。哈希表 testData.Keys 的键集合的长度也是如此。 (testData.Keys.Count = 0)

有什么建议或帮助吗?

最佳答案

您只是在测试用例数据中添加了一个空的HashTable;您实际上需要在其中放入一些东西。你的代表应该是这样的:

...
.GetTestCases(delegate(string sheet, DataRow row, int rowNum)
{
var testDataArgs = new Dictionary<string, object>();

foreach (DataColumn column in row.Table.Columns)
{
testDataArgs[column.ColumnName] = row[column];
}

var testName = sheet + rowNum;
return new TestCaseData(testDataArgs).SetName(testName);
}

关于c# - 从 Excel 读取 NUnit 测试数据 - 如何访问测试数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23912308/

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