На основании предоставленной вами информации я бы предложил использовать двойные кавычки (") вокруг значения.
Во-вторых, я всегда рассматриваю все поля как String и вызываю соответствующий метод синтаксического анализа в своем коде.
В файле CSV я делаю следующее:
input,expected
"1600,1","1600,1"
"1600","1600"
Простой метод проверки считывает оба значения. Входные данные анализируются как Double, а ожидаемый обрабатывается как String.
[DeploymentItem("UnitTest\\TestData.csv"),
DeploymentItem("TestData.csv"), TestMethod(),
DataSource("Microsoft.VisualStudio.TestTools.DataSource.CSV",
"|DataDirectory|\\TestData.csv",
"TestData#csv",
DataAccessMethod.Sequential)
]
public void Test()
{
double input= System.Double.Parse(TestContext.DataRow["input"].ToString());
string expected = TestContext.DataRow["expected"].ToString();
Assert.AreEqual(input, expected);
}
Я знаю, что это очень простой пример, и, возможно, я делаю вещи, которые не советуют. Мой опыт работы с модульным тестированием в VS2010 ограничен, поэтому не стесняйтесь предлагать улучшения для этого ответа.
Этот ответ основан на моей проблеме прочитать некоторые десятичные значения. Это для тестирования форматера, который я сейчас внедряю.