C#数据源CSV单元测试-找不到第一列

本文关键字:一列 找不到 数据源 CSV 单元测试 | 更新日期: 2023-09-27 18:20:55

im正在尝试使用Microsoft Visual Studio 2013加载CSV文件。代码:

    [TestMethod]
    [DeploymentItem("data.csv")]
    [DataSource("Microsoft.VisualStudio.TestTools.DataSource.CSV", "|DataDirectory|''data.csv", "data#csv", DataAccessMethod.Sequential)]
    public void Teste_Arquivo_EXEC()
    {
        // DETAIL
        var row = TestContext.DataRow;
        var detail = new EXECDetail();
        detail.codigoVara = Int32.Parse(row["codigoVara"].ToString());
     ....
    }

但是,当我运行测试时,它会给我一个System.ArgumentException:列"codigoVara"不属于表。这是CSV文件(它正在从源复制到输出目录):

codigoVara,codigoComarca,numeroProcesso,numeroAlvara,tipoPessoa,sequencialMovimento,tipoCredito,codigoAgencia,codigoBanco,contaCorrente,valor,nomeParte,cpfCnpj,idDeposito,sequencialRegistro
3001,1,1235520148140300,14013001005,F,1,15,3372,1,242020,150.42,LEANDRO HERNANDEZ ALMEIDA,84887532253,1,1

我试着用"符号",就像"codigoVara"一样,但没有成功。我还注意到一件有趣的事情:当我通过索引访问该列时,它会起作用!!!

detail.codigoVara = Int32.Parse(row[0].ToString());

提前感谢您的帮助=)

C#数据源CSV单元测试-找不到第一列

我认为您的.csv文件是用BOM以UTF-8编码存储的。如果是这样,那么错误的原因是MS测试运行程序的一个错误,它通过在第一个列名中包含BOM来错误地解析列名。其他列可以通过名称进行访问。

打开csv后,在Visual Studio文件->高级保存选项中选择。在新的对话中,将编码设置为:西欧(Windows)-代码页1252

为我解决了问题