ОБНОВЛЕНИЕ: добавление 2019; механизм интеграции обнаружения / бегуна такой же, как и в 2017 и 2015 годах, поэтому ключевые вещи, которые могут пойти не так, одинаковы.
Я прочитал, почему бегун xUnit не находит мои тесты, что объясняет причины, по которым xUnit никогда не сможет найти ваши тесты, но моя проблема в другом - я уверен, что с моими тестами не происходит ничего тонкого; (они работали в других средах, это , кажется, только моя машина) - Визуальный Studio Test Runner в Visual Studio 2015 [Community Edition] просто не показывает какой - либо из моих тестов. Я не делаю ничего отдаленно захватывающего; тесты нацелены на xUnit.net v2 на рабочем столе.
Я посмотрел в окне «Вывод» и вообще ничего не вижу в разделе « Тест» на вкладке « Показать вывод» .
источник
Ответы:
Устранить исключения обнаружения из ваших запросов; перейдите в окно вывода (Ctrl-Alt-O), затем переключите вывод шоу из раскрывающегося списка (Shift-Alt-S) на тесты и убедитесь, что нет исключений для обнаружения
Тест | Настройки теста | Архитектура процессора по умолчанию может помочь, если ваши тесты специфичны для x86 / x64 и обнаружение вызывает исключения, связанные с битрейтом, то есть не AnyCpu
Как предложено в этом ответе (обоснуйте его, если техника помогает), запуск бегунка консоли на рабочем столе ( инструкции ) может быть хорошей перекрестной проверкой, чтобы исключить другие возможности, например искаженные файлы конфигурации:
ПРИМЕЧАНИЕ.
xunit.runner.console
Пакет устарел: когда вы работаете с VS, вы сможетеdotnet test
запускать их и в контексте CI.Пойдите, прочитайте документацию - это всесторонне, актуально, включает информацию об устранении проблем и берет PR: -
Следующие шаги работали для меня:
(Только если вы подозреваете, что на вашей машине серьезный беспорядок - в общем случае более распространенным случаем является то, что интеграция с Visual Studio просто еще не установлена)
Сделайте,
DEL %TEMP%\VisualStudioTestExplorerExtensions
как советовали: -PS> del $env:TEMP\VisualStudioTestExplorerExtensions
Установите пакет NuGet
xunit.runner.visualstudio
во всех тестовых проектахPaket:
Вы должны в конечном итоге со следующим
paket.dependencies
:nuget xunit.runner.visualstudio version_in_path: true
Обратите внимание, что
version_in_path: true
бит важенNuget: перейдите в консоль диспетчера пакетов (Alt-T, N, O) и
Перестройте, чтобы убедиться, что в
xunit.runner
конечном каталогеЗакрыть Test Explorer <- это был пропущенный бит для меня
Повторно открыть Test Explorer (Alt-S, W, T)
Запустить все тесты (Ctrl R, A)
источник
%TEMP%\VisualStudioTestExplorerExtensions
и перезапуск VS наконец-то сработали!Мне пришлось изменить параметры теста после изменения процессора тестовых проектов на x64. Затем тесты были обнаружены снова.
источник
Ни одно из вышеперечисленных решений не помогло мне (dotnetcore 1.1, VS2017). Вот что это исправило:
Microsoft.TestPlatform.TestHost
Microsoft.NET.Test.Sdk
Это в дополнение к этим пакетам, которые я установил ранее:
источник
TestPlatform.TestHost
только при переходе с VS 2017 на VS 2019.Установить
xunit.runner.visualstudio
пакет для тестового проектаисточник
Выполните следующие действия:
MsTest.TestAdapter
иMsTest.TestFramework
dll's
отnugget package manager
.источник
%TEMP%\VisualStudioTestExplorerExtensions
и все же иногда мне приходилось запускать тесты с консоли.Я боролся с этим весь день, работая над проектом ASP Core и xUnit 2.2.0. Решением для меня было добавление ссылки на
Microsoft.DotNet.InternalAbstractions
Я узнал об этом, когда пытался запустить тестовый проект вручную, с
dotnet test
которым не удалось, но сообщил, чтоInternalAbstractions
отсутствует. Я не видел эту ошибку в тестовом окне вывода при сбое автоматического обнаружения. Единственной информацией, которую я увидел в окне обнаружения, был код возврата, который ничего не значил для меня в то время, но в ретроспективе, вероятно, указывал на ошибку.источник
Это случалось со мной пару раз - когда я очищаю проект и собираю его снова, это обычно бывает нормально.
источник
Убедитесь, что ваш тестовый класс общедоступен .
источник
Причиной в моем случае было то, что целевая сборка не была одинаковой между отладчиком проекта и исполнителем тестов. Чтобы объединить эти элементы:
После того, как они будут идентичны, перестройте свое решение, тогда для вас появятся методы тестирования.
источник
Проведя 2 дня ... ничего из вышеперечисленного не помогло мне. Единственным «решением» было: Перейти в свойства проекта -> Build Tab. Затем нажмите кнопку «Дополнительно» в правом нижнем углу панели. Измените «Debug Info:» на «full» и нажмите «ОК».
Вот скриншоты:
источник
Я использую xUnit 2.2.0.
Моя проблема заключалась в том, что мое решение не смогло найти определенные библиотеки и
app.config
пыталось их решить. Ошибка не отображалась в окне вывода теста в Visual Studio.Я смог определить ошибку, когда я установил
xunit.runner.console
и попытался запустить тесты через командную строку.Как запустить тесты xunit в CLI .
источник
Я могу предложить решение для крайнего случая, с которым я столкнулся несколько дней назад. Это не будет решением, которое подходит для всех сценариев, описанных выше, однако, для крайнего случая, я его исправил.
У меня была такая же проблема с самой последней VS 2017 (версия 15.5.7) и XUnit 2.3.1. Пакет xunit.runner.visualstudio был установлен, однако тесты не отображались во встроенном обозревателе тестов VisualStudio.
Я работал над устаревшим проектом, ориентированным на .NET Framework 4.5. Однако, начиная с версии 2.2. XUnit не поддерживает платформы .NET ниже 4.5.2 (см. Примечания к выпуску - XUnit 2.2: 19 февраля 2017 г.
Изменение целевой структуры тестового проекта на версию> = 4.5.2 работало для меня. Вам не нужно менять версию проекта, которую вы тестируете, речь идет только о самом тестовом проекте.
источник
У меня была та же проблема с Visual Studio 2019. Просто установил следующие пакеты NuGet, и проблема была решена.
1). XUnit
2). xunit.runner.visualstudio
3). Microsoft.TestPlatform.TestHost
4). Microsoft.NET.Test.Sdk
источник
Это также может быть связано с тем, что флажок сборки не установлен для текущего проекта платформы в конфигурации сборки. Нажмите Построить | Затем настройте диспетчер конфигурации и убедитесь, что у тестовых проектов есть отметка в столбце сборки для используемой вами платформы (например, «x86»).
Это было определенно решение, которое работало для меня.
источник
Убедитесь, что вы не написали свои модульные тесты в библиотеке классов .NET Standard 2.0. На момент написания этой статьи бегунок visualstudio не поддерживает выполнение тестов в библиотеках классов netstandard2.0.
Проверьте здесь для матрицы совместимости бегуна:
https://xunit.github.io/#runners
источник
Столкнулся с аналогичной проблемой, когда VS не обнаружил методы испытаний. В моем случае у меня было ключевое слово static с методом, который я удалил, и это сработало.
источник
дай мне знать спасибо
источник
В моем случае в решении было 2 разных тестовых проекта. Тесты проекта 1 могут быть найдены, но тесты проекта 2 - нет. Я обнаружил, что сначала выгрузка тестового проекта 1, затем закрытие VS> очистка моих временных файлов> повторное открытие решения> перестройка позволили VS обнаружить мои тесты Project 2.
Я предполагаю, что между двумя тестовыми проектами должно быть что-то противоречащее, и это был самый быстрый способ запустить меня в работу за несколько минут. Кинки могут быть решены позже :).
источник
Я долго страдал от этой проблемы.
У меня было около 100 проектов, разные версии были развернуты на разных серверах.
Обновление xunit с 2.2.0 до 2.3.1 не было решением, потому что сборка в 2.3.1 была неудачной.
Затем я просто обновил xunit.runner.visualstudio до 2.3.1, и все стало работать нормально. Я использовал эту команду в консоли диспетчера пакетов для обновления моего пакета xunit.runner.visualstudio
источник
Самым распространенным виновником для меня было то, что Visual Studio пыталась запустить тесты, используя архитектуру, отличную от библиотеки, которую она тестирует. К сожалению, есть несколько мест, где кажется, что это может пойти не так.
В VS 2017 попробуйте создать файл настроек запуска, например,
Default.runsettings
в своем тестовом проекте. Если ваша основная библиотека x64, содержимое должно быть:Затем выберите этот файл в меню «Тест» -> «Настройки теста» -> «Выбрать файл настроек теста».
Затем в разделе «Тест» -> «Настройки теста», «Архитектура процессора по умолчанию» снова выберите правильную архитектуру.
Обязательно очистите и постройте весь раствор. Возможно, вам придется закрыть и снова открыть окно Test Explorer. Найдите дополнительные ошибки в окне «Вывод -> Тест», чтобы узнать больше о неправильных типах архитектуры.
FYI дополнительные записи настроек теста можно найти здесь .
источник
Есть еще одна причина, которая может привести к тому, что Test Explorer не будет показывать никаких тестов, и он связан с новым переносимым
.pdb
форматом файлов, представленным в Visual Studio 2017 / для .NET Core, который может сломать некоторые инструменты VS. (Справочная информация: см. Отчет об ошибке «Mono.Cecil вызывает исключение OutOfMemoryException с новыми PDBs .csproj») .)Ваши тесты не найдены из-за нового переносимого
.pdb
(отладочные символы) формата?Если вы видите вывод, подобный следующему (возможно, повторяется один раз для каждого из ваших тестов), то у вас есть проблема, описанная в этом ответе:
Если да, сделайте это, чтобы решить проблему:
none
,pdb-only
илиfull
, но НЕportable
. Именно этот последний параметр приводит к тому, что тесты не могут быть найдены..pdb
файлы перед сборкой. Теперь ваши тесты должны вернуться.источник
Случайно со мной, когда я сделал свои первые первые попытки ходьбы с IntelliTest в VS 2017.
Иногда, когда тестовый проект автоматически создается IntelliTest, ссылка на сборку
Microsoft.ExtendedReflection
( ... \ Program Files (x86) \ Microsoft Visual Studio \ 2017 \ Enterprise \ Common7 \ IDE \ Extensions \ Microsoft \ Pex \ Microsoft.ExtendedReflection. длл ) отсутствует. После добавления сгенерированные тесты появятся в проводнике тестов после перекомпиляции.источник
Отказ от ответственности: речь идет не о xunit с Visual Studio 2015, а о Visual Studio 2017 с приложением UWP для модульного тестирования (MSTest). Я попал в эту ветку в поисках того же самого, так что, возможно, кто-то еще сделает то же самое
Решением для меня было обновить пакеты nuget для MSTest.TestAdapter и MSTest.TestFramework. Кажется, что когда вы создаете приложение модульного тестирования для UWP, вы автоматически не получаете последние версии.
источник
Моя проблема была решена установкой nuget xunit.runner.visualstudio
источник
В моем случае у меня есть несколько тестовых проектов в одном решении, и только один из проектов не отображал «Тестовый проводник»
Я перешел в «Управление пакетом Nuget для решения», щелкнув правой кнопкой мыши решение.
Я заметил, что на вкладке «Консолидация» было несколько «тестовых» пакетов с нюгетами, которые были не синхронизированы между проектами. Я нажал «Установить», и мои недостающие тесты обнаружились.
источник
Я попробовал большинство предложений выше и ничего не получалось. В моем случае я работаю в команде, и тестирование других разработчиков для того же решения началось. Итак, я попытался просто удалить свою папку .vs, но и безуспешно.
В итоге я полностью удалил свою локальную папку и заново клонировал репо. Это решило это для меня.
источник
Вот решение, которое сработало для нас. Не самый лучший, но может быть, кто-то может извлечь выгоду.
Задний план:
После сборки мы увидим это сообщение:
Решение (временное):
Теперь тесты показаны.
источник
xUnit v2 tests
в заголовокТакже проверьте, есть ли в тестовом проекте полностью пустой файл app.config (полностью пустой, без разметки). Это был виновник в моем случае.
источник
В моем случае я создал новую «конфигурацию решения», как показано на рисунке. Поэтому, когда я выбираю свой пользовательский как «Prod», он по какой-то причине не распознает TestMehods. Переключение обратно на «Отладка» решает проблему
источник
Я не знаю, используют ли некоторые из вас JustMock, но мне пришлось отключить профилировщик в VS 2017, чтобы тестовое определение работало.
источник