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());
提前感谢您的帮助=)
我认为您的.csv文件是用BOM以UTF-8编码存储的。如果是这样,那么错误的原因是MS测试运行程序的一个错误,它通过在第一个列名中包含BOM来错误地解析列名。其他列可以通过名称进行访问。
打开csv后,在Visual Studio文件->高级保存选项中选择。在新的对话中,将编码设置为:西欧(Windows)-代码页1252
为我解决了问题