代码之家  ›  专栏  ›  技术社区  ›  Juri

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

  •  7
  • Juri  · 技术社区  · 15 年前

    我的数据驱动单元测试中使用了以下csv文件:

    File;expected
    Resources.resx;default
    Resources.de.resx;de
    AttachmentDetail.ascx.it.resx;it
    SomeOtherFile.rm-CH.resx;rm-CH
    

    “file”和“expected”是头。但是如果我想得到“文件”列

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

    我明白错误

    System.ArgumentException:列 “文件”不属于表..

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

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

    2 回复  |  直到 15 年前
        1
  •  12
  •   Doug Boone    15 年前

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

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

    在“encoding:”下拉列表中,默认值为utf-8。将其更改为“西欧(DOS)-代码页850”。不要选择行尾。

        2
  •  0
  •   Gustavo Muenz    15 年前

    正在保存的文件是什么编码?

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

    你用记事本++编辑并保存了文件吗?我试着这样做并比较结果。