У меня возникла странная проблема с модульным тестом, управляемым данными. Данные хранятся в файле xls
. Когда я использую следующую строку подключения, все работает нормально.Конкатенация строк в DataSource для тестового модульного теста
[TestMethod()]
[DataSource(
"System.Data.Odbc",
@"Driver={Microsoft Excel Driver (*.xls)};DriverId=790;dbq=MyFolder\TestData.xls;defaultdir=.",
"Tabelle1$",
DataAccessMethod.Sequential)]
public void DataDrivenTest() {...}
Теперь я хотел бы извлечь имя файла из строки подключения в некоторую константу, например.
const string FilePath = "MyFolder\TestData.xls";
Но как только я начинаю разделять строку соединения, я получаю ошибки в модульном тесте. Интересно, что даже разделяя строку на две части не работает:
...
@"Driver={Microsoft Excel Driver (*.xls)};DriverId=790;" + @"dbq=MyFolder\TestData.xls;defaultdir=.",
...
Вместо этого я получаю следующее сообщение об ошибке
Блок тест адаптера не удалось подключиться к источнику данных или для считывания данных , Дополнительные сведения об устранении этой ошибки см. В разделе «Устранение неполадок с тестируемыми данными» (http://go.microsoft.com/fwlink/?LinkId=62412) в библиотеке MSDN.
Сведения об ошибке: ERROR [42S02] [Microsoft] [Драйвер Excel ODBC] Механизм базы данных Microsoft Jet не смог найти объект «Tabelle1 $». Убедитесь, что объект существует, и вы правильно назовете его имя и имя пути.
Любая идея, откуда эта разница в поведении?
Что меня больше всего сбивает с толку, так это то, что даже в ildasm
я не видел никаких очевидных различий между этими двумя вариантами (т. Е., Похоже, компилятор уже объединяет две строки).
Нет, сообщение об ошибке остается неизменным (удаление как «@» и уйти от «\») – hofingerandi