В настоящее время я работаю над решением, в котором есть 32 модульных теста. Я работал с программой для выполнения тестов resharper - она отлично работает. Все тесты запущены, все тесты показывают правильный результат. Теперь коллега сказал мне, что тесты не выполняются на его машине с помощью обозревателя тестов Visual Studio. Они не работают на моей машине, поэтому я могу исключить некоторые локальные отсутствующие файлы или что-то в этом роде.
Обозреватель тестов показывает все модульные тесты, но при нажатии на «Run All» все тесты становятся серыми и не показывают результатов выполнения теста:
- Все тестовые классы открыты
- Для всех тестовых классов
[TestClass]
объявлен атрибут - Все методы тестирования используют
[TestMethod]
атрибут - И код производительности, и тестовые проекты ориентированы на .NET 3.5.
- Я уже пытался чистой сборка моего решения, и / или удалить все
obj
,bin
,Debug
иRelease
папки
Я бы воспринял любые подсказки, которые могут вызвать такое поведение.
visual-studio
unit-testing
visual-studio-2012
resharper
ElGauchooo
источник
источник
Ответы:
Если ваши проекты не все AnyCpu, вы также можете проверить, совпадают ли следующие 2 настройки:
[Щелкните правой кнопкой мыши тестовый проект] -> Свойства -> Сборка -> Цель платформы - например, x64
[Главное меню] -> Тест -> Настройки теста -> Архитектура процессора по умолчанию -> X64
Я обнаружил, что, когда они не совпадают, мой тестовый проект не запускается.
источник
У меня была такая же проблема в VS 2017. В моем случае она решалась перезапуском VS.
источник
Если вы используете NUnit, а не MSTest, вам понадобится расширение тестового адаптера NUnit для Visual Studio 2012/2013.
источник
Microsoft.NET.Test.Sdk
с NugetМне пришлось изменить свои методы тестирования async, чтобы вернуть Task вместо void.
После этого тесты были активны и запускались в обозревателе тестов.
источник
async void Foo()
и их анализаторы не жаловались, но они, безусловно, могли бы добавить тот, который будет. cc: @bradwilsonПроверьте, для какой платформы написаны тесты (например, nunit, xunit, VS test и т. Д.), И убедитесь, что у вас установлен правильный тестовый адаптер / расширение runner.
Для меня отсутствовал тестовый адаптер NUnit 3, и я подтвердил номер версии, просмотрев версию зависимости nunit.framework (выберите .dll в дереве зависимостей в обозревателе решений и нажмите F4, чтобы открыть окно свойств).
источник
Microsoft.VisualStudio.QualityTools.UnitTestFramework
(не знаю, какая версия). Решенные проблемы, из-за которых метод не запускался (или не был найден) путем удаления этой ссылки и установки последней версии (v2.1.0) MSTest.TestAdapter (и Framework)Microsoft.VisualStudio.TestTools.UnitTesting
устарел? У меня было несколько тестов, использующих это, которые внезапно перестали работать, как указано выше, после повторного добавления некоторых ссылок на проект, от которого они зависели.Я боролась с этим полтора дня. Итак, вот что я сделал, чтобы решить эту проблему:
симптомы
изучение
Поскольку все пакеты были обновлены во время обновления .NET Framework, я начал с различий между рабочими и неработающими проектами. Первой подсказкой было то, что все 3 проекта использовали: MSTest.TestAdapter и MSTest.TestFramework.
Естественно, я пошел в -> Консоль вывода -> Выпадающее меню Тест в VS 2019 и посмотрел на результат. Ничего полезного там нет.
Первый шаг решения : обновите MSTest.TestAdapter и MSTest.TestFramework до версии 2.0.0.
Шаг второй решения : Теперь консоль вывода -> выпадающий список Test начал показывать один за другим отсутствующие пакеты и неправильные перенаправления привязки.
Шаг третий : добавьте недостающие пакеты вручную. Для меня это были
Шаг 4 решения : Удалены / исправлены необязательные перенаправления привязки.
Надеюсь, это поможет кому-то другому.
источник
ToolsVersion
и удар шахты все испортил. Все, что я могу сказать, это «берегитесь покупателя» для модульного тестирования MS и будьте готовы заменить ваши файлы * .csproj в любой момент, этот материал тесно интегрирован и очень зависит от версии.Clean-Rebuild
решение сработало для меня.источник
Я обнаружил, что в проекте нет ссылки на сборку Microsoft.VisualStudio.QualityTools.UnitTestFramework . Вместо этого он ссылался на Microsoft.VisualStudio.TestPlatform.TestFramework и Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions . Когда я удалил эти две ссылки и добавил ссылку на сборку Microsoft.VisualStudio.QualityTools.UnitTestFramework, тесты, которые ранее были отмечены синим восклицательным знаком, внезапно стали активными и начали работать.
источник
У меня была эта проблема, и для меня она была вызвана наличием нескольких тестовых проектов с разными версиями:
Объединение пакетов nuget для проектов, чтобы они были одинаковыми, решило проблему для меня.
источник
Была такая же проблема после чистой установки VS 2019. Тесты обнаружены, но не выполняются с сообщением «Произошла непредвиденная ошибка». Исправлено настройкой x64 вместо x86, который был выбран по умолчанию.
источник
В моем случае это произошло потому, что в одном тестовом проекте в моем решении были установлены пакеты nuget MSTest.TestFramework и MSTest.TestAdapter, а в других - нет. Очевидно, эти пакеты не требовались для запуска тестов, пока они не были установлены в одном проекте решения.
Проблема была устранена путем установки этих пакетов в тестовые проекты, в которых они отсутствовали.
источник
Что исправило для меня, так это обновление пакетов Nuget MS.Test
источник
Установка
Nunit3TestAdapter
Nuget решила эту проблемуисточник
Установка архитектуры процессора для проектов AnyCPU в обозревателе тестов устранила мою проблему! Смотрите скриншот выше.
источник
В моем случае у меня был
async void
метод, и я заменил егоasync Task
, поэтому тестовый запуск, как я ожидал:заменить :
источник
Вы можете просмотреть выходные данные об ошибках вашего средства запуска тестов, открыв панель «Вывод» (просмотр -> вывод) и выбрав «тесты» в раскрывающемся списке «Показать вывод из».
Кроме того, если у вас установлен Resharper, вы можете открыть тестовый файл и навести указатель мыши на кружок рядом с тестом, чтобы получить дополнительную информацию об ошибке.
Щелкнув по нему, вы попадете в окно с более подробной информацией. Кроме того, вы можете открыть это окно, перейдя в Extensions -> Reshaper -> Windows -> Unit Test Exploration Results.
источник
У меня были такие же симптомы.
Убедитесь, что у вас установлено правильное расширение Visual Studio через Инструменты - Расширения и обновления. В моем случае мне пришлось установить XUnit и Specflow из опции Online.
Затем очистите раствор и восстановите его.
Если это все еще не помогает, очистите временный каталог (найдите% temp% в поиске в меню «Пуск» и удалите все содержимое в Temp)
И затем, наконец, попробуйте удалить Resharper, который, наконец, устранил мою проблему.
источник
Вот это был тестовый проект, не отмеченный для постройки:
Сборка -> Диспетчер конфигураций ... -> проверьте сборку для вашего тестового проекта
источник
Поскольку я попал сюда с такой ошибкой, я публикую свою проблему / решение:
Симптомы:
Проблема:
В коде произошла ошибка, которая вызвала исключение внутри другого потока. Все утверждения теста пройдены, но выполнение теста было отменено. Я видел ошибку в «Выводе тестов» (NullException).
источник
Были те же симптомы, в моем случае это была версия SDK ядра dotnet. проблема была в .
Проекты были нацелены на 2.2 и могли строить с использованием 3.0. После установки последней версии 2.2 SDK они смогли запустить.
источник
Эта проблема также наблюдается, когда выполняемый метод тестирования выдает исключение StackOverflowException , заставляя средство выполнения теста прервать выполнение теста, что приводит к выходу
0 tests run
.Чтобы найти виновника и устранить его, установите точку останова в начале декорированных методов TestInitialize и TestMethod , запустите модульный тест в режиме отладки, продолжайте переходить (F10) до тех пор, пока не возникнет исключение.
источник
Пробовали много вариантов с Visual Studio 2019 версии 16.4.6 и
Microsoft.VisualStudio.TestTools.UnitTesting
, но пока единственный способ успешно запустить тесты - это вызвать следующую команду в консоли.Тесты обнаруживаются в обозревателе тестов, но результат - «Не выполнено».
Обновление Visual Studio не помогло.
Решили проблему с сообщением «Ни один тест не соответствует заданному фильтру тестового набора FullyQualifiedName», запустив обновления до последней версии для следующих пакетов:
источник
На этот вопрос уже есть много ответов, но у меня был другой сценарий и решение.
Мы переместили функциональность тестируемого типа из одного класса в новый и, таким образом, создали новый тестовый класс, при этом старый тестовый класс оказался пустым.
Оригинал:
Разбитая:
Исправлена:
Старый тестовый класс(удален)Очистите проект, закройте Visual Studio, удалите папку TestResults, затем перезапустите VS, а затем перестройте проект. (Это само по себе может решить вашу проблему, но для меня этого было недостаточно, пока не был удален старый тестовый класс.)
источник
У меня было другое решение для запуска моих тестов. Моя глобальная папка пакетов не соответствовала тому, что было в моем .csproj Вот как выглядел мой .csproj:
Мне пришлось изменить мою версию на 16.5.0, которая, как я обнаружил, была установлена в моей папке глобальных пакетов. Теперь мои тесты могут выполняться:
источник
Для меня решением было изменить настройки Resharper Unit Testing «Архитектура платформы по умолчанию» на «x64».
источник
Для меня перезапуск VS2017 не сработал. Мне пришлось очистить sln, затем я нашел файл с тестами, которые не запускались, и запустил только этот файл. После этого я все запустил, и он снова заработал нормально.
источник
У меня была другая версия пакетов nuget NUnit (3.11.0) и NunitTestAdapter (3.12.0). Когда я обновил NUnit до 3.12.0, Visual Studio запустила тесты.
источник
В моем случае это помогло обновить пакеты MSTest nuget. Можно было воспроизвести эту проблему даже в пустом проекте MSTest, и обновление пакетов работало.
источник
Для меня такое поведение было вызвано наличием свойства TestContext в базовом классе. Например:
источник
По вашим атрибутам я могу сказать, что вы используете MSTest. У меня была аналогичная проблема: мои тесты отображались в обозревателе тестов, но когда я пытался их запустить (либо выбирая «Выполнить все», либо выбирая их индивидуально), они не появлялись.
Моя проблема заключалась в том, что я создал проект модульного теста вручную из пустого проекта библиотеки стандартных классов .NET. Я установил
MSTest.TestFramework
пакет NuGet, но неMSTest.TestAdapter
пакет. Как только я установил пакет адаптеров, они заработали должным образом.Оглядываясь назад, это кажется очевидным, но когда вы создаете проекты модульных тестов на основе шаблона, вы принимаете эти вещи как должное.
источник