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

时间:2009-07-10 16:27:55

标签: 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

“文件”和“预期”是标题。但是,如果我想在代码中获得“文件”列,如

TestContext.DataRow["File"].ToString();

我收到错误

  

System.ArgumentException:Column   '文件'不属于表..

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

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

2 个答案:

答案 0 :(得分:11)

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

“文件\高级保存选项...”

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

答案 1 :(得分:0)

要保存的文件是什么编码?

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

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