RavenDB и XUnit: несколько тестов для каждого TestClassC#

Место общения программистов C#
Ответить
Anonymous
 RavenDB и XUnit: несколько тестов для каждого TestClass

Сообщение Anonymous »

В настоящее время я пытаюсь настроить интеграционное тестирование, чтобы убедиться, что мои запросы RavenDB возвращают то, что я ожидаю.
Я следовал документации и запустил один тест. p>
Проблема начинается, когда я добавляю дополнительный тестовый метод в тот же класс. Я получаю следующее исключение:

Код: Выделить всё

System.InvalidOperationException : Cannot configure server after it was started. Please call 'ConfigureServer' method before any 'GetDocumentStore' is called.
По сути, это говорит мне о том, что сервер уже работает. Но это меня смущает. Поскольку XUnit создает новый экземпляр тестового класса для каждого обнаруженного тестового метода в этом классе. Кроме того, он вызывает Dispose() в любом экземпляре, реализующем IDisposable. Что косвенно реализуется базовым классом RavenTestDriver.
Итак, что я думаю происходит:
  • XUnit создает новый экземпляр моего тестового класса
  • XUnit вызывает мой тестовый метод
  • Мой тестовый метод вызывает ConfigurationServer, встроенный сервер RavenDB запущен
  • Мой метод тестирования завершается
  • XUnit вызывает Dispose на моем экземпляре тестового класса, встроенный сервер RavenDB останавливается
  • Rince и повторите для следующего метод тестирования
Но, похоже, мое предположение по №5 неверно. Кажется, что встроенный сервер RavenDB никогда не останавливается. Кроме того, я не могу найти способ остановить его вручную. Я пытался удалить его вручную с помощью EmbeddedServer.Instance.Dispose(). Но это ничего не меняет. (.Instance дает понять, что EmbeddedServer, вероятно, является одноэлементным, что может быть частью проблемы).
Я также пытался переместить ConfigurationServer
Я также пытался переместить ConfigurationServer code> вызов конструктора тестового класса. Поскольку класс XUnit является конструктором для каждого тестового метода (точно так же, как метод setup из JUnit). Но потом я получаю тот же результат.
Но самое интересное: вызов configureServer в двух разных классах работает нормально.
Я создал небольшой репозиторий воспроизводителя.
Итак, есть ли у кого-нибудь идеи о том, как настроить RavenDB в среде Unit/Integration-Test, где вы хотите запустить несколько тестов?

Подробнее здесь: https://stackoverflow.com/questions/663 ... -testclass
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»