【问题标题】:Unit testing with data from file使用文件中的数据进行单元测试
【发布时间】:2018-08-11 01:05:09
【问题描述】:

我正在尝试创建一个 Lemmatizer。为了测试这个词形还原器,我获得了一个包含近 75000 个词形还原的 csv。

为了测试,我创建了一个读取文件并检查每行是否产生正确引理的单元测试。这种方法的问题是它在第一个错误时失败,这当然是应该的。但这并没有让我了解词形还原器的总体进展。这是唯一一个失败的,还是这只是数千个中的第一个。

我可以创建一个只计算正确的测试并检查这个数字是否等于测试的数字。但是我对失败没有很好的线索。

我想到的最好的事情是为每个单词 + 引理创建一个单元测试。这样做的缺点是 a) 工作和 b) 与仅将其添加到 csv 相比,添加新单词/引理组合进行测试变得不那么容易。

所以我的问题是:有没有人有比上述更好的选择?对“进度”有很好的跟踪,但仍会看到个别失败/成功测试。

【问题讨论】:

  • 你用的是哪个测试框架,MSTest,xUnit?

标签: c# unit-testing


【解决方案1】:

对于 MSTest,这应该可以帮助您。测试执行将继续执行 CSV 文件中的下一行,与断言结果无关。

[DataSource("Microsoft.VisualStudio.TestTools.DataSource.CSV", "lemmatizations.csv", "lemmatizations#csv", DataAccessMethod.Sequential)]
[TestMethod]
public void LemmatizationTest()
{
    string lemma = TestContext.DataRow["lemma"]);
    string expected = TestContext.DataRow["expected"]);
    Assert.AreEqual(expected, lemma);
}

【讨论】:

  • 太棒了,这正是我需要的。谢谢!
猜你喜欢
  • 2018-10-19
  • 1970-01-01
  • 1970-01-01
  • 2019-04-01
  • 2016-07-03
  • 2012-07-18
  • 1970-01-01
  • 2019-10-26
  • 2010-09-15
相关资源
最近更新 更多