Не удается запустить тесты Xunit на Visual Studio 2017

Не Version 15.6.4 запустить все тесты XUnit на моей Visual Studio 2017. Version 15.6.4

Их можно просмотреть в TestExploer, и когда я запустил их, я получаю что-то вроде этого:

[27.03.2018 12:21:46 Informational] ------ Load Playlist started ------
[27.03.2018 12:21:46 Informational] ========== Load Playlist finished 
(0:00:00,0215566) ==========
[27.03.2018 12:22:27 Informational] Executing test method 'Lebara.Remittance.Test.ServiceImplementation.RiskEngineServiceTest.ShouldTest'
[27.03.2018 12:22:27 Informational] ------ Run test started ------
[27.03.2018 12:22:29 Warning] Multiple test adapters with the same uri 
'executor://xunit/VsTestRunner2' were found. Ignoring adapter 
'Xunit.Runner.VisualStudio.TestAdapter.VsTestRunner'. Please uninstall the 
conflicting adapter(s) to avoid this warning.
[27.03.2018 12:22:29 Warning] [xUnit.net 00:00:00.0209459] Skipping: 
Lebara.Remittance.Test (could not find dependent assembly 
'Microsoft.Extensions.DependencyModel, Version=1.1.0')
[27.03.2018 12:22:29 Warning] No test is available in C:\ReposNew\Lebara.Remittance\Lebara.Remittance\Lebara.Remittance.Test\bin\Debug\Lebara.Remittance.Test.dll. Make sure that test discoverer & executors are registered and platform & framework version settings are appropriate and try again.
[27.03.2018 12:22:29 Informational] ========== Run test finished: 0 run 
(0:00:02,1543479) ==========
[27.03.2018 12:34:19 Informational] Executing test method 'Lebara.Remittance.Test.ServiceImplementation.RiskEngineServiceTest.ShouldTest'
[27.03.2018 12:34:19 Informational] ------ Run test started ------
[27.03.2018 12:34:20 Warning] Multiple test adapters with the same uri 
'executor://xunit/VsTestRunner2' were found. Ignoring adapter 
'Xunit.Runner.VisualStudio.TestAdapter.VsTestRunner'. Please uninstall the 
conflicting adapter(s) to avoid this warning.
[27.03.2018 12:34:20 Warning] [xUnit.net 00:00:00.0200861] Skipping: 
Lebara.Remittance.Test (could not find dependent assembly 
'Microsoft.Extensions.DependencyModel, Version=1.1.0')
[27.03.2018 12:34:20 Warning] No test is available in C:\ReposNew\Lebara.Remittance\Lebara.Remittance\Lebara.Remittance.Test\bin\Debug\Lebara.Remittance.Test.dll. Make sure that test discoverer & executors are registered and platform & framework version settings are appropriate and try again.
[27.03.2018 12:34:20 Informational] ========== Run test finished: 0 run 
(0:00:00,7088116) ==========

Я попытался удалить %TEMP%\VisualStudioTestExplorerExtensions - ничего не помогло.

Дело в том, что несколько дней назад я мог их запустить. Я ничего не изменил. Просто не знаешь, что происходит.

Также у меня было это предупреждение

 [27.03.2018 12:22:29 Warning] Multiple test adapters with the same uri 
 'executor://xunit/VsTestRunner2' were found. Ignoring adapter 
 'Xunit.Runner.VisualStudio.TestAdapter.VsTestRunner'. Please uninstall the 
 conflicting adapter(s) to avoid this warning.
 [27.03.2018 12:22:29 Warning] [xUnit.net 00:00:00.0209459] Skipping: 
 Lebara.Remittance.Test (could not find dependent assembly 
 'Microsoft.Extensions.DependencyModel, Version=1.1.0')

Ответы

Ответ 1

У меня были проблемы с xUnit. Некоторые важные вещи:

1) Убедитесь, что расширение "Microsoft Visual Studio Test Platform" включено

2) Убедитесь, что "Test => Test Settings => Default Processor Architecture" соответствует вашей сборке.

3) Установите пакет nuget 'xunit.runner.visualstudio'

Ответ 2

Если вы используете .NET Core или ASP.NET Core, то из xunit (https://xunit.github.io/docs/getting-started-dotnet-core.html):

Запуск тестов с помощью Visual Studio

Если у вас возникают проблемы с обнаружением или выполнением тестов, вы можете стать жертвой поврежденного кэша бегуна в Visual Studio. Чтобы очистить этот кэш, закройте все экземпляры Visual Studio, затем удалите папку% TEMP%\VisualStudioTestExplorerExtensions. Также убедитесь, что ваше решение связано только с одной версией пакета NuGet для бегуна Visual Studio (xunit.runner.visualstudio).

Если у вас есть сообщество Visual Studio (или платная версия Visual Studio), вы можете запустить свои тесты xUnit.net во встроенном средстве выполнения тестов Visual Studio (называемом Test Explorer). К сожалению, это не включает экспресс-выпуски Visual Studio (вместо этого вам следует перейти на бесплатную версию Community Edition).

Щелкните правой кнопкой мыши проект в обозревателе решений и выберите "Управление пакетами NuGet". Вам нужно будет установить два пакета:

xunit.runner.visualstudio (version 2.3.1 or later)
Microsoft.NET.Test.Sdk (version 15.0.0 or later; we recommend using whatever the latest RTM build is)

Убедитесь, что Test Explorer видим (перейдите в Test> Windows> Test Explorer). Каждый раз, когда вы строите свой проект, бегун будет обнаруживать модульные тесты в вашем проекте. После момента обнаружения вы должны увидеть список обнаруженных тестов:

Нажмите на ссылку Run All в окне Test Explorer, и вы увидите обновление результатов в окне Test Explorer по мере выполнения тестов:

Вы можете нажать на неудачный тест, чтобы увидеть сообщение об ошибке и трассировку стека. Вы можете щелкнуть строки трассировки стека, чтобы перейти непосредственно к ошибочной строке кода.

Также упоминает

Проведение испытаний по нескольким целям

(если некоторые проекты нацелены на Core, а другие на .NET 4.5, например.)

Другая возможность:

Убедитесь, что используете xunit 2.3. 0+

Ответ 3

Я столкнулся с проблемой пару недель назад, когда обновил xUnit до 2.4.0-beta.1. Исследователь Visual Studio Test Explorer взял оба адаптера теста xUnit и не смог выполнить вышеуказанное сообщение.

К сожалению, это было не просто обновление до последнего обновления VS, поскольку я уже работал последним. Я уже использовал последнюю версию пакета Microsoft.NET.Test.Sdk. Переход к последней стабильной версии 2.3.1 тоже не сработал, VS все еще собирал оба адаптера.

В конце концов, мне пришлось вручную удалить папки xUnit зависящие от версии, из папки пакетов решений и кеша NuGet в %userprofile%\.nuget\packages.

Также должны помочь очистить локальные папки в Managing the global packages, cache, and temp folders. Если у вас есть быстрое подключение к Интернету, вы можете попробовать выполнить команду "nuke it":

nuget locals all -clear

Ответ 4

Не удалось найти исполнителя теста с URI 'executor://xunit/VsTestRunner2'. Убедитесь, что тестовый исполнитель установлен и поддерживает .net runtime версии 4.0.30319.42000.