Не удается использовать DataSource для тестирования на основе данных на 64-разрядной машине, установленной в офисе - PullRequest
0 голосов
/ 30 января 2019

У меня проблема с использованием DataSource в Visual Studio.Это выдает ошибку IM014, если я не устанавливаю установку AccessDatabaseEngine (2007), однако это вызывает другую проблему.Я не могу установить AccessDatabaseEngine 32 бит 2016, потому что офис установил 64 бит на моем компьютере.

В соответствии с приведенной ниже страницей, при попытке создать соединения ODBC (например, соединения с Access или Excel) в 64-битной операционной системекак и в Windows 7, драйверы не видны

https://support.microsoft.com/en-hk/help/2721825/unable-to-create-dsn-for-microsoft-office-system-driver-on-64-bit-vers

Я проверил odbcad32 для 32- и 64-битных версий и вижу добавленные файлы Excel.

Я хочу сделать datadrivenтестовый подход, и я хочу получить тестовую работу mycodedui для каждой строки excel.Я использую приведенный ниже код для DataSource

 [DataSource("System.Data.Odbc", "Dsn=Excel Files;dbq=C:\\Codedui\\testdata\\test.xls;defaultdir=C:\\Codedui\\testdata\\test.xls;driverid=1046;maxbuffersize=2048;pagetimeout=5", "Sheet$", DataAccessMethod.Sequential), DeploymentItem("test.xls"), TestMethod]

Проблема в том, что Visual Studio codedui не работает после этой установки (ничего не распознает)

Прямо сейчас у меня есть два варианта

  1. Установите AccessDatabaseEngine и используйте DataSource, но codedui не работает (недопустимое решение)
  2. Деинсталлируйте AccessDatabaseEngine и НЕ используйте DataSource, но codedui работает (без подхода, управляемого данными) ps.also Браузер Edge не должен быть открыт

но мне нужны оба ..

У меня есть другие файлы AccessDatabaseEngine x64 для 2010 и 2016. Эти установки не влияют на мои тесты codedui, однако DataSource не работает с ними, я получаю ошибку

   Error [IM014] [ Microsoft][ODBC Driver Manager]

Может кто-нибудь предоставить мне другую строку источника данных?(но он должен работать в Excel построчно)

Я также пытался установить System.Data.Odbc с помощью nuget с приведенным ниже кодом, но выдал ошибку

dotnet add package System.Data.Odbc --version 4.5.0-preview1-25915-02 --source https://dotnet.myget.org/F/dotnet-core/api/v3/index.json

сообщение об ошибке дляКоманда добавления dotnet

 dotnet : Could not find any project in `C:\Test\CodedUITestProject2\`

Я вижу, как AcceessDatabaseEngine устанавливает некоторые реестры.Он также создает DLL по указанному ниже пути, я пытался, но я не могу добавить это в качестве ссылки.

C: \ Program Files \ Microsoft Office \ Office15 \ STSLIST.DLL

...