我尝试使用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());
提前感谢您的任何帮助=)
答案 0 :(得分:3)
我认为您的.csv文件以带有BOM的UTF-8编码存储。如果是这样,那么错误的原因是MS测试运行器的错误,它通过将BOM包括在第一列名称中来错误地解析列名。其他列可以通过其名称访问。
答案 1 :(得分:1)
打开csv时,在Visual Studio文件中选择 - >高级保存选项。在新的对话框中编码:西欧(Windows) - 代码页1252
解决了我的问题