NUnit: Effort.Exceptions.EffortException: библиотеке Effort не удалось автоматически зарегистрировать своего поставщика, поэтому требуется ручная регистрация
Я работаю над Web API и во время модульного тестирования с использованием NUnit я столкнулся с этой ошибкой, которая говорит:
Tests.DemoTest.SessionLogOnBreakdownTest:
SetUp : Effort.Exceptions.EffortException : The Effort library failed to register its provider automatically, so manual registration is required.
a) Call the Effort.Provider.EffortProviderConfiguration.RegisterProvider() method at entry point of the application
or
b) Add the following configuration to the App.config file:
<system.data>
<DbProviderFactories>
<add name="Effort.Provider"
invariant="Effort.Provider"
description="Effort.Provider"
type="Effort.Provider.EffortProviderFactory, Effort" />
</DbProviderFactories>
</system.data>
----> System.Configuration.ConfigurationErrorsException : Failed to find or load the registered .Net Framework Data Provider.
TearDown : System.NullReferenceException : Object reference not set to an instance of an object.
Вот тест, который я запускаю:
[TestFixture]
public class DemoTest : TestBase
{
private TestContext _context;
private DbConnection _dbConnection;
[SetUp]
public void Initialization()
{
//Effort.Provider.EffortProviderConfiguration.RegisterProvider();
_dbConnection = Effort.DbConnectionFactory.CreateTransient();
_context = new TestContext(_dbConnection);
}
[Test]
public void SessionLogOnBreakdownTest()
{
//code which uses _context
}
}
Ошибка брошена в _dbConnection = Effort.DbConnectionFactory.CreateTransient();
Я следовал обоим предложениям, которые дает исключение. Но никто не работал.
Вещи, которые я пробовал:
- Эти два предложения в помощнике исключений
- Обновление-Пакет -Переустановить усилие
0 ответов
Я также вижу, что это происходит в приложении.Net 4.6.1 с использованием EF6 (6.4.0-6.4.4) и Effort.EF6 2.2.10. Я пробовал несколько разных комбинаций версий, но видел, как это происходит случайным образом с помощью обозревателя тестов в VS и почти постоянно с помощью теста dotnet. Обратите внимание: я пробовал решения A, B и A и B, предложенные в сообщении об ошибке.