可能有点晚了,但我仍然会回答,因为它可能会帮助其他人。
在幕后,Microsoft.VisualStudio.TestTools.DataSource.CSV 使用 OleDb 驱动程序。您描述的数据源等于
[DataSource("System.Data.OleDb",
"Provider=Microsoft.Jet.OLEDB.4.0; Data Source=.; Extended Properties=\"Text\"",
"Test#csv",
Microsoft.VisualStudio.TestTools.UnitTesting.DataAccessMethod.Sequential)]
一旦知道了这一点,您就知道您还可以使用带有此内容的schema.ini文件来设置分隔符。
[Test.csv]
Format=Delimited(;)
[SomeOtherTableToShowYouOnlyHaveToCreateOneSchemaDotIni.csv]
Format=Delimited(;)
重要此文件需要是不带字节顺序标记 (BOM) 的 ANSI 或 UTF-8。默认情况下,Visual Studio使用此标记创建文本文件。在 Visual Studio 中,“另存为”对话框包含将文件导出为 US-ASCII 的选项,这应该足够了。
您需要做的最后一件事是将 ini 作为部署项包括在内:
[DataSource("Microsoft.VisualStudio.TestTools.DataSource.CSV",
"Test.csv",
"Test#csv",
DataAccessMethod.Sequential)]
[DeploymentItem(@"Test.csv")]
[DeploymentItem(@"schema.ini")]
public void Test()
{ ... }
顺便说一句:这不起作用:
[DataSource("System.Data.OleDb",
"Provider=Microsoft.Jet.OLEDB.4.0; Data Source=.; Extended Properties=\"Text;FMT=Delimited(;)\"",
"Test#csv",
Microsoft.VisualStudio.TestTools.UnitTesting.DataAccessMethod.Sequential)]