我正在(通过 SourceText 类)自动生成一个 csv 文件以用于数据驱动测试 (vstest),使用 UTF-8 编码。 TestContext 找不到第一个列标题,它总是抛出异常,
System.ArgumentException: Column 'IsProductCreated' does not belong to table .
如果我在每一行的开头手动添加一个虚拟列,测试就会成功。
TestContext 设置:
[TestMethod]
[DataSource("Microsoft.VisualStudio.TestTools.DataSource.CSV", "9C118DF7_AssignMaterialsToProductionOrderWhenNotReleased.csv", "9C118DF7_AssignMaterialsToProductionOrderWhenNotReleased#csv", DataAccessMethod.Sequential),
DeploymentItem("..\\..\\MaterialAndContainer\\MaterialManagementTest\\_TestData\\9C118DF7_AssignMaterialsToProductionOrderWhenNotReleased.csv")]
使用示例:
productionOrderScenario.IsProductCreated = (DataDrivenReader.ReadBool(TestContext.DataRow["IsProductCreated"]));
我做错了什么?
最佳答案
我将 SourceText 实例的编码显式更改为 Encoding.Default。这让它起作用了。在我看来,Encoding.Default 不是,好吧,默认值是骗人的……没有编码让我尝试了其他编码,UTF8 似乎是正确的,但事实并非如此。
关于c# - 无法读取数据驱动测试的 csv 文件的第一列。 Visual Studio 2017,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43920398/