来自 .csv 文件的编码 ui - Read/Write 值

Coded ui - Read/Write values from .csv files

我有一个 codedui 测试,它从 .csv 文件中读取值。我正在使用以下代码:

[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. 如果我需要从多个来源读取值,有没有办法做到这一点,因为在数据源中,我只能提供一个文件名。

谢谢

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

的最后一个操作

可以使用读取如上编写的 CSV 的第二个测试。尝试同时进行 运行 两项测试很可能会失败。让一个 CSV 被一个测试用例读取而另一个测试用例正在向它写入行可能会导致各种问题。 (例如,如果第二个测试赶上第一个怎么办,它如何处理读取没有数据的文件?不要假设这会如您所愿地工作,假设最坏的情况。)

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