Сборка Jenkins с Access DataBase Engine на C # для тестов Selenium, получение провайдера Microsoft.ACE.OLEDB.12.0 не зарегистрировано на локальном компьютере - PullRequest
0 голосов
/ 05 октября 2018

В моих тестах на селен Nnuint подсистема доступа к данным использовалась для чтения данных из листа Excel. Пока эти тесты выполняются из Jenkins, я получаю сообщение об ошибке ниже.

Invalid : Automation_Smoke_Tests.CategoryExecution.CategorybaseExcetion
System.Reflection.TargetInvocationException : Exception has been thrown by the target of an invocation.
  ----> System.InvalidOperationException : The 'Microsoft.ACE.OLEDB.12.0' provider is not registered on the local machine.
   at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor)
   at System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments)
   at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
   at NUnit.Framework.TestCaseSourceAttribute.GetTestCaseSource(IMethodInfo method) in C:\src\nunit\nunit\src\NUnitFramework\framework\Attributes\TestCaseSourceAttribute.cs:line 277
   at NUnit.Framework.TestCaseSourceAttribute.GetTestCasesFor(IMethodInfo method) in C:\src\nunit\nunit\src\NUnitFramework\framework\Attributes\TestCaseSourceAttribute.cs:line 173
--InvalidOperationException
   at System.Data.OleDb.OleDbServicesWrapper.GetDataSource(OleDbConnectionString constr, DataSourceWrapper& datasrcWrapper)
   at System.Data.OleDb.OleDbConnectionInternal..ctor(OleDbConnectionString constr, OleDbConnection connection)
   at System.Data.OleDb.OleDbConnectionFactory.CreateConnection(DbConnectionOptions options, DbConnectionPoolKey poolKey, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningObject)
   at System.Data.ProviderBase.DbConnectionFactory.CreateNonPooledConnection(DbConnection owningConnection, DbConnectionPoolGroup poolGroup, DbConnectionOptions userOptions)
   at System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal oldConnection, DbConnectionInternal& connection)
   at System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions)
   at System.Data.ProviderBase.DbConnectionInternal.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory)
   at System.Data.OleDb.OleDbConnection.Open()
   at LinqToExcel.Query.ExcelUtilities.GetWorksheetNames(ExcelQueryArgs args)
   at LinqToExcel.ExcelQueryFactory.GetWorksheetNames()

1 Ответ

0 голосов
/ 14 января 2019

Я сейчас сталкиваюсь с подобной проблемой.Похоже, что на компьютере, на котором размещен сервер Jenkins, не установлен правильный движок доступа.

Я обнаружил, что мне нужно установить версию 2010 года.Вот где мне становится интересно.У механизма доступа есть 2 варианта - обычная версия и затем версия x64.Мне нужно было установить версию NON x64, чтобы мои тесты запускались локально в Visual Studio, но для их запуска в Jenkins мне потребовалась версия x64.

Вы можете найти загрузки 2010 здесь -https://www.microsoft.com/en-us/download/details.aspx?id=13255.

...