编码ui -读取/写入值从.csv文件

本文关键字:csv 文件 ui 读取 编码 | 更新日期: 2023-09-27 17:53:09

我有一个从.csv文件读取值的codedui测试。我使用下面的代码:

[DataSource("Microsoft.VisualStudio.TestTools.DataSource.CSV", "|DataDirectory|''testdata.csv", "testdata#csv", DataAccessMethod.Sequential), DeploymentItem("testdata.csv"), TestMethod]
public void test()
{
 String a = TestContext.DataRow["Field 1"].ToString();
}

作为我需求的一部分,我需要捕获测试结果,例如生成的id,并再次将其写回"testdata.csv"。

我尝试使用:TestContext.DataRow["IDField"] = id;

但它不成功。

我的问题是:
  1. 我们如何在运行时写入值到这个文件?
  2. 如何在不同的测试中读取上述值?
  3. 如果我需要从多个来源读取值,是否有办法做到这一点,因为在数据源中,我只能给出一个文件名。

谢谢

编码ui -读取/写入值从.csv文件

无法更新到正在读取的CSV数据源文件。一种方法是写入新的CSV文件。这个新文件可以包含来自数据源CSV的所有数据以及任何新字段。[ClassInitialize][AssemblyInitialize]可用于编写具有列标题的CSV的第一行。[TestCleanup]可能是编写CSV数据线的好地方,因为无论测试用例是否通过,都应该调用它。如果应该仅为通过的测试写入CSV,则写入CSV数据行作为[TestMethod]的最后一个操作。

可以使用第二个测试来读取如上所述的CSV。尝试同时运行两个测试可能会失败。让一个测试用例读取CSV,而另一个测试用例正在向它写入行,可能会导致各种各样的问题。(例如,如果第二个测试赶上了第一个,它如何处理读取没有数据的文件?不要以为这会如你所愿,要做最坏的打算。

编码UI只允许为测试提供一个数据源属性。