Ошибка модульного тестирования-адаптеру модульного тестирования не удалось подключиться к источнику данных или прочитать данные
Я использую VSTS 2K8, и я настроил проект модульного тестирования. В нем, у меня есть тестовый класс с методом, который делает простое утверждение. В качестве источника данных я использую электронную таблицу Excel 2007.
мой метод тестирования выглядит так:
[DataSource("System.Data.Odbc",
"Dsn=Excel Files;dbq=|DataDirectory|MyTestData.xlsx;defaultdir=C:TestData;driverid=1046;maxbuffersize=2048;pagetimeout=5",
"Sheet1",
DataAccessMethod.Sequential)]
[DeploymentItem("MyTestData.xlsx")]
[TestMethod()]
public void State_Value_Is_Set()
{
string expected = "MD";
string actual = TestContext.DataRow["State"] as string;
Assert.AreEqual(expected, actual);
}
Как указано в атрибутах оформления метода, моя электронная таблица Excel находится на моем локальном диске C:/. В нем лист, где находятся все мои данные, называется "Sheet1".
Я скопировал таблицу Excel в свою проект, и я установил его действие сборки = "содержимое", и я установил его копию в выходной каталог = "копировать, если новее".
при попытке запустить этот простой модульный тест, я получаю следующую ошибку:
модульный тест адаптера не удалось подключиться к источнику данных или для чтения данных. Дополнительные сведения об устранении этой ошибки см. В разделе "Устранение неполадок модульных тестов, управляемых данными" (http://go.microsoft.com/fwlink/?LinkId=62412) в библиотеке MSDN. Сведения об ошибке: ошибка [42S02][Microsoft] [драйвер ODBC Excel] Microsoft Office Access Database engine не удалось найти объект "Sheet1". Проверьте существование объекта и правильность имени и пути.
Я проверил, что имя листа написано правильно (т. е. Sheet1), и я проверил, что мои источники данных установлены правильно.
веб-поиск вообще не появился. И я в полном замешательстве.
все справки или вклад оценили!!!!
6 ответов
измените свойство" Build Action " Excel(.xlsx) к контенту и "копировать в выходной каталог", чтобы скопировать, если новее.
Это сработало для меня, когда я получил ту же ошибку, что и urs...
++ также не забудьте просмотреть и добавить файл excel на вкладке развертывания TestRun.файл конфигурации, который находится в сервере soution..:)
вы должны убедиться, что ваше развертывание включено в выбранных вами тестовых настройках!!!
удачи!!!
У меня была аналогичная проблема, но я просто пытался развернуть простой XML-файл.
проблема оказалась в том, что имя файла, который я развертывал, было слишком длинным.
у меня было две проблемы здесь, одна была пропуск-правописание нужного листа в моем файле excel. И я думаю, что главное различие между .xls
и .xlsx
файлы. В моей машине у меня есть Office 2007 таким образом, автоматически расширение файлов excel является .xlsx
, но я должен был написать тестовый случай для проекта, который уже был реализован, и он использовал этот источник данных:
[DataSource("System.Data.Odbc",
@"Driver={Microsoft Excel Driver (*.xls)};DriverId=790;Dbq=Test.xls;DefaultDir=.",
"Data$", DataAccessMethod.Sequential)]
Я создал файл Excel в машина, которая имела версия Office до 2007 таким образом, расширение было .xls
и затем я переместил этот файл excel на свою машину. Так я смогу решить свою проблему.
решения, которые я пробовал 1) добавлен файл данных в разделе развертывание локальных настроек 2) изменил свойства файла на "Content" и " Copy if newer" 3) жесткое кодирование местоположения файла в атрибуте элемента развертывания и в строке подключения в приложении.конфигурационный файл.
ничего из вышеперечисленного не сработало.
В конце концов я узнал, что в реестре нет регистров DLL Jet. Я экспортировал струи папка (HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Jet) из реестра машины, на которой я не получал ошибку и импортировал ее на машину, на которой я получал ошибку. Это решило проблему для меня.
имя листа должно иметь"$", добавленное в противном случае, он определенно потерпит неудачу (все еще действителен для Visual Studio 2015), как:
"Sheet1$"
.