Не запускаются тесты nunit visual studio 2019 c

Обновлено: 07.07.2024

Я только что установил VS 2017. У меня есть проект с использованием NUnit для тестовых случаев. Ctrl + R - T больше не запускает тесты, и Test Explorer больше не находит тестовых примеров, отмеченных атрибутом TestCase.

Есть ли способ запустить NUnit или обновление, которое я могу найти? Я снова установил NUnit из Nuget Package Manager в последнюю версию без каких-либо улучшений.

ОТВЕТЫ

Ответ 1

Добавьте тестовый адаптер NUnit NuGet в тестовые проекты

Или установите расширение визуальной студии тестового адаптера. Существует один для

Я предпочитаю пакет NuGet, потому что он будет синхронизироваться с версией NUnit, используемой вашим проектом, и таким образом автоматически будет соответствовать версии, используемой на любом сервере сборки.

Ответ 2

Вам нужно установить NUnitTestAdapter. Последняя версия NUnit - 3.x.y(3.6.1), и вы должны установить NUnit3TestAdapter вместе с NUnit 3.x.y

Чтобы установить NUnit3TestAdapter в Visual Studio 2017, выполните следующие действия:

Ответ 3

  • Добавьте в Nuget библиотеку NUnit 3.
  • Создайте класс, который вы хотите протестировать.
  • Создайте отдельный класс тестирования, над ним должна быть [TestFixture].
  • Создайте функцию в классе тестирования, это должно иметь [Test] над ней.
  • Затем перейдите в TEST/WINDOW/TEST EXPLORER (вверху).
  • Нажмите "Запустить" в левую сторону, он скажет вам, что прошло и что не удалось.

Мой примерный код здесь:

Это вернет true, если вы измените параметр в Is.EqualTo, это не удастся и т.д.

Ответ 4

Вам необходимо установить 3 пакета NuGet:

Удачи в написании юнит-тестов!

Ответ 5

Вы должны выбрать архитектуру процессора юнит-тестов в VS:
Test > Test Settings > Default processor architecture

Тестовый адаптер должен быть открыт для просмотра тестов: (VisualStudio например:
Test->Windows->Test Explorer

Дополнительную информацию о том, что происходит, вы можете рассмотреть в "VS-Output-Window", выбрать выпадающий "Show output from" и установить "Tests".

Ответ 6

Используя CLI, создать работающий проект NUnit очень просто. Шаблон делает все за вас.

Ответ 7

Для запуска или отладки теста в Visual Studio 2017 нам нужно установить "NUnit3TestAdapter". Мы можем установить его в любой VS, но она работает правильно в версии VS для сообщества. Чтобы установить это вы можете добавить через Nuget Package.

Ответ 8

Для тех, у кого есть проблемы с Visual Studio 2019:

Я должен был сначала открыть Test> Windows> Test Explorer и запустить тесты оттуда, прежде чем опция Run/Debug tests появится в меню правой кнопки мыши.

IWebDriver driver = new FirefoxDriver();

А вы все библиотеки подключили, необходимые для корректного запуска?

IWebDriver driver = new FirefoxDriver();

ЗАметил, что во всех туториалах нужно ещё подключать библиотеки:
Ionic.Zip.dll
Newtonsoft.Json.dll
nmock.dll

Вот у меня их нету в скачанных папках NUnit и Selenium WebDriver. И где их достать тогда, если их нет на официальных сайтах?

ЗАметил, что во всех туториалах нужно ещё подключать библиотеки:
Ionic.Zip.dll
Newtonsoft.Json.dll
nmock.dll

Вот у меня их нету в скачанных папках NUnit и Selenium WebDriver. И где их достать тогда, если их нет на официальных сайтах?

Вы пользуетесь Visual Studio?

К сожалению опять нет, всё равно та же самая ошибка:

Прикрепленные файлы

using System;
using System.Text;
using System.Text.RegularExpressions;
using System.Threading;
using NUnit.Framework;
using OpenQA.Selenium;
using OpenQA.Selenium.Firefox;
using OpenQA.Selenium.Support.UI;

namespace SeleniumTests
[TestFixture]
public class Test1
private IWebDriver driver;
private StringBuilder verificationErrors;
private string baseURL;
private bool acceptNextAlert = true;

[TearDown]
public void TeardownTest()
try
driver.Quit();
>
catch (Exception)
// Ignore errors if unable to close the browser
>
Assert.AreEqual("", verificationErrors.ToString());
>

private string CloseAlertAndGetItsText() try IAlert alert = driver.SwitchTo().Alert();
if (acceptNextAlert) alert.Accept();
> else alert.Dismiss();
>
return alert.Text;
> finally acceptNextAlert = true;
>
>
>
>


Но в коде нету смысла, даже если просто написать одну единственную строку

Я наблюдаю очень странное поведение тестов NUnit в VS2019, где то же решение отлично работает в VS2017. В моей душе есть несколько тестовых проектов NUnit.

В VS2017 с установленным расширением NUnit Runner я вижу все свои тесты в окне обозревателя тестов, и кнопка "запустить все" будет работать и запускать все тесты. Некоторые разработчики в моей организации используют Resharper вместо расширения NUnit, и это тоже работает.

Я прекратил использовать Resharper, потому что по мере того, как VS вводит больше функций, Resharper делает его настолько медленным, что VS становится непригодным для использования.

В VS2019 в окне Test Explorer будут отображаться все мои модульные тесты (даже без установленного расширения NUnit). Если я нажму "запустить все", тесты не будут запускаться, а в окне вывода будет указано, что обнаружено 0 тестов. Коллеги сказали, что Resharper будет запускать все тесты без проблем. Если я щелкну правой кнопкой мыши один тестовый проект и запускаю только эти тесты, некоторые проекты будут запускать тесты, но не все.

Для некоторых проектов я попытался установить пакет nuget NUnit3TestAdapater, и это позволит VS2019 запустить тест этого проекта, если выбран только этот проект. Это работает не для всех проектов, и не для всех проектов.

Это было настоящей болью около года, потому что мне нужно, чтобы VS2017 и 2019 оставались установленными, и мне нужно обучить новых разработчиков тому, как обойти эту странную проблему.

Решение оказалось комбинацией двух вещей.

Использование пакета NuGet для тестового адаптера вместо использования расширения VSIX. Кажется, что для этого фрагмента все, что требуется, - это чтобы хотя бы один проект в вашем решении ссылался на него. Если на него ссылается хотя бы один проект, все тестовые проекты могут быть запущены. (Для меня это имеет смысл, поскольку он более совместим с инструментами сборки за пределами Visual Studio.)

Ура за критические изменения!

В итоге я установил в свой тестовый проект три пакета:

Однако включение или выключение автоматического обнаружения тестов ничего не изменило.

Надеюсь, это кому-нибудь поможет.

У меня была такая же проблема, и я решил ее, проверив журнал.

В Tools-> Options-> Test-> General установите для уровня ведения журнала значение «Диагностика». Это приведет к появлению дополнительных результатов на панели вывода тестов окна вывода.

ОБНОВЛЕНИЕ: добавление 2019; Механизм интеграции обнаружения/бегуна такой же, как в 2017 и 2015 годах, поэтому ключевые вещи, которые могут пойти не так, одинаковы.

Я посмотрел в окне "Вывод" и вообще ничего не вижу в разделе " Тест" на вкладке " Показать вывод".

ОТВЕТЫ

Ответ 1

Устранить обнаруженные исключения из ваших запросов; перейдите в окно вывода (Ctrl-Alt-O), затем переключите вывод show из (Shift-Alt-S) на тесты и убедитесь, что исключений обнаружения нет

Как предлагается в этом ответе (повышайте его, если техника помогает) запуск бегуна на рабочем столе (инструкции) может быть хорошей перекрестной проверкой для устранения других возможностей, например. измененные файлы конфигурации: -

Тестирование | Тестирование | Архитектура процессора по умолчанию может помочь, если ваши тесты заданы как x86/x64, а обнаружение запускает связанные с привязанностью исключения, т.е. AnyCpu

Прочитайте документацию - она ​​полная, актуальная, включает в себя информацию об устранении неполадок и принимает PR: -

Для меня работали следующие шаги:

(Только если вы подозреваете, что на вашем компьютере существует серьезная проблема - в общем, более распространенным случаем является то, что интеграция с визуальной студией просто не установлена)

Сделайте DEL %TEMP%\VisualStudioTestExplorerExtensions в соответствии с рекомендациями: -

PS> del $env:TEMP\VisualStudioTestExplorerExtensions

В вашем paket.dependencies :

необходимо указать следующее:

Обратите внимание, что бит version_in_path: true важен

Nuget: перейдите в консоль диспетчера пакетов (Alt-T, N, O) и

Закрыть тестовый проводник < - это был недостающий бит для меня

Повторно открыть тестовый проводник (Alt-S, W, T)

Запустить все тесты (Ctrl R, A)

Ответ 2

Мне пришлось изменить настройки теста после изменения процессора тестовых проектов на x64. Затем тесты, которые были обнаружены снова.

Архитектура

Ответ 3

Ни одно из вышеперечисленных решений не помогло мне (dotnetcore 1.1, VS2017). Вот что это исправило:

В дополнение к этим пакетам, которые я установил ранее:

Ответ 4

Ответ 5

Выполните следующие действия:

  • Обновите свои MsTest.TestAdapter и MsTest.TestFramework dll's от nugget package manager .
  • Очистите ваше решение.
  • Создайте свое решение.

Ответ 6

Я боролся с этим весь день, работая с проектом ASP Core и xUnit 2.2.0. Решение для меня заключалось в добавлении ссылки на Microsoft.DotNet.InternalAbstractions

Я узнал об этом при попытке запустить тестовый проект вручную с dotnet test , который вышел из строя, но сообщил, что InternalAbstractions отсутствует. Я не видел эту ошибку в окне тестового вывода, когда сбой автоматического обнаружения. Единственной информацией, которую я видел в окне открытия, был код возврата, который в то время не имел для меня ничего общего, но в ретроспективе, вероятно, указывалось на ошибку.

Ответ 7

Это случилось со мной несколько раз - когда я очищаю проект и строю его снова, он имеет тенденцию быть в порядке.

Ответ 8

Проведя 2 дня. ничего из вышеперечисленного не помогло мне. Единственным "решением" было: Перейти к свойствам проекта → Build Tab. Затем нажмите кнопку "Дополнительно" в правом нижнем углу панели. Измените "Debug Info:" на "full" и нажмите "OK".

enter image description here

Вот скриншоты:

enter image description here
enter image description here

Ответ 9

Причиной в моем случае было то, что целевая сборка не была одинаковой между отладчиком проекта и исполнителем тестов. Чтобы объединить эти элементы:

  1. Тест> Настройки теста> Архитектура процессора по умолчанию. затем выберите X64 или X86.
  2. Проект> (ваш проект) Свойства> Сборка (вкладка)> Цель платформы.

После того, как они будут идентичны, перестройте свое решение, тогда для вас появятся методы тестирования.

Ответ 10

Я использую xUnit 2.2.0.

Моя проблема заключалась в том, что мое решение не смогло найти определенные библиотеки, и app.config пытался их решить. Ошибка не отображалась в окне вывода теста в Visual Studio.

Ответ 11

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

Изменение целевой структуры тестового проекта на версию> = 4.5.2 работало для меня. Вам не нужно менять версию проекта, которую вы тестируете, речь идет только о самом тестовом проекте.

Ответ 12

Это также может быть связано с тем, что флажок сборки не отмечен для текущего проекта платформы в конфигурации сборки. Нажмите "Построить | Configuration Manager, затем убедитесь, что в тестовых проектах есть галочка в столбце сборки для используемой платформы (например," x86").

Это было определенно решение, которое сработало для меня.

Ответ 13

Проверить здесь для матрицы совместимости Test Runner:

Ответ 14

У меня была та же проблема с Visual Studio 2019. Просто установил следующие пакеты NuGet, и проблема была решена.

Ответ 15

В моем случае у меня было два разных тестовых проекта в решении. Тесты проекта 1 можно было найти, но тесты Project 2 не смогли. Я обнаружил, что сначала выгрузив тестовый проект 1, затем закрыв VS > очистив временные файлы > повторно откройте решение > перестроить, разрешить VS обнаружить мои тесты Project 2.

Я предполагаю, что что-то должно противоречить двум тестовым проектам, и это был самый быстрый способ заставить меня работать и работать через несколько минут. Изломы могут быть разработаны позже:).

Ответ 16

Включение аналогичной проблемы с VS не обнаруживает методы тестирования. В моем случае у меня было статическое ключевое слово с методом, который я удалил, и он сработал.

Ответ 17

Я долго страдал от этой проблемы.

У меня было около 100 проектов, разные версии были развернуты на разных серверах.

Обновление xunit с 2.2.0 до 2.3.1 не было решением, потому что сборка в 2.3.1 была неудачной.

Ответ 18

Наиболее распространенным явлением для Visual Studio является попытка запуска тестов с использованием другой архитектуры, чем тестируемая библиотека. К сожалению, есть несколько мест, где кажется, что это может пойти не так.

Дополнительные записи параметров тестирования FYI можно найти здесь.

Ответ 19

Есть еще одна причина, которая может привести к тому, что Test Explorer не будет показывать никаких тестов, и это связано с новым переносимым форматом файлов .pdb , представленным в Visual Studio 2017/для .NET Core, который может сломать некоторые инструменты VS. (Предыстория: см. отчет об ошибке "Mono.Cecil вызывает OutOfMemoryException с новыми PDB-пакетами .csproj" .)

Не найдены ли ваши тесты из-за нового переносимого формата .pdb (отладочные символы)?

  • Откройте окно вывода.
  • Измените раскрывающийся список для отображения результатов вывода на тесты.

Если вы видите вывод следующим образом (возможно, один раз для каждого из ваших тестов), то у вас есть проблема, описанная в этом ответе:

Если да, сделайте это, чтобы решить проблему:

Ответ 20

Слушайте меня, когда я впервые совершил первые попытки с IntelliTest в VS 2017.

Иногда, когда тестовый проект автоматически создается IntelliTest, ссылка сборки на Microsoft.ExtendedReflection (. \Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\Extensions\Microsoft\Pex\Microsoft.ExtendedReflection.dll) отсутствует. При добавлении сгенерированные тесты будут отображаться в тестовом проводнике после повторной компиляции.

Ответ 21

Отказ от ответственности: речь идет не о xunit с visual studio 2015, а Visual Studio 2017 с приложением UWP unit test (MSTest). Я попал в эту нить, ища то же самое, поэтому, возможно, кто-то другой сделает то же самое:)

Решение для меня состояло в том, чтобы обновить пакеты nuget для MSTest.TestAdapter и MSTest.TestFramework. Похоже, что когда вы создаете приложение unit test для UWP, вы автоматически не получаете последние версии.

Ответ 22

Ответ 23

В моем случае у меня есть несколько тестовых проектов в одном и том же решении, и только один из проектов не отображает "Тестировщик"

Я пошел в "Manage Nuget Package for Solution", щелкнув правой кнопкой мыши на решении.

Я заметил, что на вкладке "Консолидация" были некоторые пакеты "Тест" nuget, которые не синхронизировались между проектами. Я нажал "Установить", и мои отсутствующие тесты появились.

Ответ 24

Я перепробовал большинство предложений выше и ничего не получалось. В моем случае я работаю в команде, и тестирование других разработчиков для того же решения началось. Итак, я попытался просто удалить свою папку .vs, но там тоже не повезло.

В итоге я полностью удалил свою локальную папку и заново клонировал репо. Это решило это для меня.

Ответ 25

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

  • Наши скрипты были разработаны с VS 2013 и использовали NUnit VS Adapter 2.1..
  • Недавно мы перешли на VS 2017, и когда откроем то же решение - test не будет отображаться в Test Explorer.
  • Удалить NUnit Adapter 3.10.
  • Установите адаптер NUnit VS 2.1..

Теперь тесты показаны.

Ответ 26

  1. Закройте все экземпляры Visual Studio
  2. Перейти к% TEMP%\VisualStudioTestExplorerExtensions\
  3. Удалить specrun связанные папки
  4. Попробуйте снова

дай мне знать спасибо

Ответ 27

Также проверьте, полностью ли пуст файл app.config(полностью пустой с абсолютно никакой разметкой) в тестовом проекте. Это было преступником в моем случае.

Ответ 28

В моем случае я создал новую "конфигурацию решения", как показано на рисунке. Поэтому, когда я выбираю свой пользовательский как "Prod", по какой-то причине он не распознает TestMehod. Переход к "Debug" решает проблему

введите описание изображения здесь

Ответ 29

Я не знаю, используют ли некоторые из вас также JustMock, но мне пришлось отключить профилировщик VS 2017 для проверки обнаружения.

Ответ 30

В моем решении было много проектов различного типа, и я не мог запустить тестовый проект Xunit. Я выгрузил все из них, кроме моего проекта Xunit, а затем перестроил решение, которое показало тесты в visual studio, и я мог их запустить.

Читайте также: