2017-02-21 5 views
0

Кто-нибудь знает, есть ли разница в процессе выполнения (например, «vstest.executionengine.exe») при запуске сингла или когда вы запускаете все тесты в тестовом классе из Visual Studio Update 3 (скомпилированы в x64 и .NET 4.5.2)?Существуют ли различия в выполнении при выполнении одного или всего теста в тестовом классе

Выполнение «всех тестов ..» приводит к отказу конкретного теста. Выполняется однократное тестирование (тот же конкретный тест)

Конкретный тест использует dbContext (Entity Framework 6.x) в рамках предложения using, и кажется, что dbContext каким-то образом кэшируется при запуске всех тестов, тем самым делая конкретные тест не в состоянии, так сказать ...

Спасибо заранее

ответ

0
  1. ИМХО, UnitTests не должны ударить базу данных.

  2. На ваш вопрос, когда вы запускаете одного против всех, "все", когда он создает эти папки как

\ TestResults \ MyUserName_MyMachineName 2016-12-31 14_45_48 \ В \ TestResults \ MyUserName_MyMachineName 2016-12-31 14_45_48 \ Out

Всякий раз, когда у меня была проблема с этим, это было то, что я не имел [DeploymentItem] атрибут на какой-то файл, который был необходим для UnitTest ,

(Когда UnitTest запускается как один, файл будет находиться в папке \ bin \ Debug \, но когда он запускается как «запустить все», он не будет находиться в «\ TestResults \ MyUserName_MyMachineName 2016-12 -31 14_45_48 \ "(в какой-то вложенное здесь) папке, таким образом UnitTest потерпит неудачу.

Именно поэтому DeploymentItem существует, чтобы заставить скопировать этот файл в„зону запуска всех“.

+0

Привет grandaCoder, спасибо за быстрый ответ, однако 1) тесты, которые я описываю, являются интеграционными тестами, 2) когда я запускаю то же самое, например. запускать все и запускать один раз с помощью тестового бегуна ReSharpers Unit, он работает без ошибок. – oakman

Смежные вопросы