数据驱动的单元测试 - CSV编码问题?

Jur*_*uri 8 c# unit-testing mstest data-driven-tests

我有以下CSV文件,用于我的数据驱动单元测试:

File;expected
Resources.resx;default
Resources.de.resx;de
AttachmentDetail.ascx.it.resx;it
SomeOtherFile.rm-CH.resx;rm-CH
Run Code Online (Sandbox Code Playgroud)

"文件"和"预期"是标题.但是,如果我想在代码中得到"文件"列

TestContext.DataRow["File"].ToString();
Run Code Online (Sandbox Code Playgroud)

我收到了错误

System.ArgumentException:列'File'不属于表..

当我通过测试方法属性将CSV文件添加到现有测试用例时,似乎"文件"列在其名称前面有一些奇怪的符号,就像编码问题一样.但是,如果我用记事本,Notepad ++甚至TextMate(在Mac上)打开CSV文件,我没有看到任何这样的迹象,我无法摆脱它们.

有人可以给我一个关于这个问题的建议吗?

小智 12

如果您在VS2008中编辑CSV文件,则可以设置CSV文件的保存方式:

"文件\高级保存选项..."

在"编码:"下拉列表中,默认值为UTF-8.将其更改为"Wester European(DOS) - Codepage 850".单独保留Line endings选项.

  • 这对我有用.这可能应该标记为答案. (2认同)

Edi*_*enz 0

保存的文件是什么编码?

据我所知,Windows记事本中保存的UTF-8会在文件前面放置一些奇怪的符号,以便在没有找到UTF8所需的任何符号时确切地知道使用了什么编码(假设一切都是纯ascii)

您是否使用 Notepad++ 编辑了该文件并保存了它?我会尝试这样做并比较结果。