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

9

我有一个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: 列'File'不属于表格..

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

有人能给我关于这个问题的建议吗?


1
请问那是哪种语言?我猜想是C#... - Gustavo Muenz
2个回答

12

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

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

在"编码:"下拉列表中,默认为UTF-8。请将其更改为"西欧(DOS)- 代码页850"。保持行结尾的选择不变。


2
这对我有用。这可能应该标记为答案。 - Joel McBeth
很好的提示,这对我有用。我花了大约2个小时与ArgumentException错误斗争,直到我找到了这篇文章。所有我的其他CSV数据文件都工作正常,但其中一个没有,这就是原因。非常奇怪的问题。不确定为什么一开始会发生这种情况。 - Jim Kennedy

0

文件保存时使用的编码是什么?

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

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


那也是我的第一个假设,所以我按你说的用 Notepad++ 编辑并保存了文件……然而没有结果。我很生气,这应该很简单,只是这些该死的符号。一定有什么问题。 - Juri

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接