0

我在我的解决方案中设置了数据驱动的单元测试。它已连线,一切正常,这是大多数在线文章和问题似乎都关注的内容。

我找不到的是我如何在任何给定列的第一行之后读取后续行。

例如,如果我的 excel 文档是这样设置的:

  A    |   B
------ | ------
  A1   |   B1
  A2   |   B2
  A3   |
  A4   |  

然后回到我的单元测试中,我做了类似的事情:

var getValue = TestContext.DataRow["A"];
var getOtherValue = TestContext.DataRow["B"];

输出是getValue = "A1"getOtherValue = B1。如果我尝试做这样的事情:

var getValue = TestContext.DataRow[0];
var getOtherValue = TestContext.DataRow[1];

输出仍然完全相同,这是有道理的。

我感到困惑的是如何获得A2, A3,B2等中的值。这样我就可以通过将它们插入 excel 来测试所有不同的场景。

再举一个例子,如果我有这个表:

 Cost  |  QtyOrdered 
------ | ------------ 
  10   |   10       
  5    |   null
 null  |   2
 null  |   null       

在上述场景中,我想遍历所有不同的行并确保插入的值是我所期望的。我期望的第一行100,并且在每个额外的行中,我都期望在我的单元测试中出现错误消息。

如果我不能只为每列的多行插入一堆数据,我真的看不出在 excel 中进行数据驱动的单元测试有什么意义。

4

2 回答 2

0

您可以从 Excel 工作表中导入数据,并使用循环或任何适合您需要的机制对生成的数据集运行测试。我个人更喜欢ClosedXml因为它的可用性和速度。或者,您可以使用本机 Microsoft OLEDB 库来完成它。祝你好运!

于 2017-01-17T19:04:49.053 回答
0

像这样进行数据驱动的单元测试将为电子表格中的每一行调用一次您的方法。如果你把所有东西都连接好了,那么就不需要其他任何东西了。

我会留下这个问题,因为我觉得它将来可能对其他人有用,因为它是如何工作的并不是很明显。

于 2017-01-17T19:58:59.480 回答