Тестовые модули NUnit не отображаются в Test Explorer с установленным тестовым адаптером

Я установил тестовый адаптер NUnit для VS2012 + 2013. Когда я впервые установил адаптеры, тесты показывались, но по какой-то причине они прекратились сегодня. После сборки, перестройки, очистки, перезапуска в Test Explorer ничего не появляется. Почему это происходит? Я использую VS2013 Ultimate.

35 ответов

Решение

Если ваш тестовый проект настроен на 64-битную платформу, тесты не будут отображаться в тестовом адаптере NUnit.

Если вы используете версию NUnit3+, доступен новый тестовый адаптер.

Перейдите в "Инструменты -> Расширения и обновления -> Онлайн" и найдите "Тестовый адаптер NUnit3", а затем установите.

Моя тестовая сборка 64-битная. В строке меню в верхней части Visual Studio 2012 я смог выбрать "Тест" -> "Настройки теста" -> "Архитектура процессора по умолчанию" -> "X64". После "Восстановить решение" из меню "Сборка" я смог увидеть все свои тесты в проводнике тестов. Надеюсь, это поможет кому-то еще в будущем =D.

Установите "Тестовый адаптер NUnit"

Сервис -> Расширения и обновления -> Онлайн -> Поиск "Тестовый адаптер Nunit" -> Нажмите "Тестовый адаптер NUnit" в списке результатов -> Нажмите кнопку "Загрузить"

Проверьте несоответствие версий NUnit. Доступный в настоящее время тестовый адаптер NUnit работает только для NUnit версии 2.6.4 и ниже. Чтобы понизить версию NUnit с версии 3.x, перейдите в Консоль диспетчера пакетов> пакет обновления NUnit -version 2.6.4.

http://jeremybytes.blogspot.co.ke/2015/11/review-of-unit-testing-makes-me-faster.html

В моей ситуации "Тестовый адаптер NUnit3" был отключен. Чтобы снова включить его перейдите в меню

Сервис-> Расширения и обновления...

С левой стороны выберите "Установлено" -> "Все".

В верхнем правом углу найдите "nunit".

Если у вас установлен тестовый адаптер NUnit3, с помощью найденного элемента вы можете включить / отключить его.

Если вы используете VS 2017 и ядро ​​.net, как уже было сказано, вы должны добавить ссылки на тестовую среду NUnit 3.6.1, на тестовую программу NUnit3TestAdapter 3.8.0-alpha1 и на тестовый SDK Microsoft.NET.Test.Sdk 15.0.0.

У меня была рабочая установка (для NUnit2 и NUnit3 в зависимости от решения и нескольких версий Visual Studio между 2012 и 2017 годами), и она внезапно перестала работать в один прекрасный день: ни в одном решении или версии VS тесты не обнаружены.

В моем случае это помогло удалить %localappdata%\Temp\VisualStudioTestExplorerExtensions, После перезагрузки VS все заработало как раньше.

Этот ответ кажется довольно простым, но сначала он мне не совсем понятен. Если вы (пере) создаете решение, оно создает только те проекты, которые настроены для Build -> Configuration Manager

Это была моя проблема, я должен был случайно изменить параметры конфигурации сборки или что-то, из-за чего мои тестовые проекты не собирались (когда они были раньше). Итак Test Explorer Окно смотрело на dll, которые были устаревшими. Мне стало ясно, что это был случай после выполнения Clean и видя, что большинство моих тестов исчезают и не возвращаются после rebuild... дальнейшая проверка bin папка показала, что эти проекты вообще не создавались.

Перейдите в менеджер пакетов Nuget и загрузите адаптер Nunit следующим образом.

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

  1. инструменты
  2. NuGet Package Manager
  3. Управление пакетами NuGet для решения
  4. Просматривать
  5. NUnitTestAdapter.WithFramework
  6. Ctrl + R, A для построения / запуска тестов

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

Использование NUnitTestAdapter.WithFramework гарантирует, что между версиями NUnit и NUnit Adapter практически нет несоответствий (т. Е. "Это просто работает")

Проверьте, указали ли вы [TestFixureSetUp] и [Test]

в тестовом классе

образец:

namespace ClassLibrary1
{
public class SimpleCalculator
{
    public Calculator _calculator;
    [TestFixtureSetUp]
    public void initialize()
    {
        _calculator = new Calculator();

    }
    [Test]
    public void DivideTest()
    {
        int a = 10;
        int b = 2;
        int expectedValue = a/b;
        int actualValue = _calculator.Divide(a, b);
        Assert.AreEqual(expectedValue, actualValue, "Functionality not working properly!");
    }
}

}

Я решил использовать эти версии:

NUnit -> 3.2.0

NUnit3TestAdapter -> 3.0.8-ctp-8

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

В нашем случае это было несоответствие версии тестового адаптера NUnit. В основном наш NUnit был 3.x, а тестовый адаптер был 2.x.

Сделано после

Расширение Visual Studio> Установите адаптер Unit 3.x для Visual Studio и все начали работать.

Мне пришлось удалить, а затем переустановить пакет nuget xunit.runner.visualstudio. Я попробовал это после того, как попробовал все вышеупомянутые предложения, так что, возможно, это была смесь вещей.

Еще одна причина этой проблемы - если вы открываете проект с подключенного диска - Visual Studio правильно обрабатывает такие проекты, но, очевидно, Nunit их не поддерживает.

Копирование проекта в физическое исправило проблему.

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

Несмотря на то, что он уже выбран, повторный выбор параметра «Список воспроизведения: все тесты» в обозревателе тестов показал все скрытые тесты в моем случае. Мне нужно это делать после каждой перестройки.

Если вы используете TestCaseSource атрибут, убедитесь, что источник существует и соблюдает документацию, иначе ваши тесты не будут обнаружены.

У меня была похожая проблема, когда тесты не были обнаружены. У меня была правильная версия NUnit, версии совпадали между NUnit и адаптером, и тесты были помечены правильно. Я работал под управлением VS 2017 Enterprise не как администратор. После запуска VS от имени администратора появились тесты.

Я начал новое решение с тестовым проектом и сравнил его с моим исходным проблемным проектом. В оригинале по какой-то причине был файл app.config. Я исключил этот файл из проекта и увидел, что мои тесты снова появляются в проводнике тестов.

Если ваш тестовый проект не x86, тесты не будут найдены до тех пор, пока вы не укажете тестировщику правильную целевую платформу.

До Visual Studio 2022 это была опция «Тест/Настройки тестирования/Архитектура процессора по умолчанию».

В VS2022 вам нужно создать файл «runsettings» и настроить тестовый проект на его использование. В этом файле вы можете указать целевую платформу, например:

      <?xml version="1.0" encoding="utf-8" ?>
<RunSettings>
  <!-- Configurations that affect the Test Framework -->
  <RunConfiguration>
    <TargetPlatform>x64</TargetPlatform>
  </RunConfiguration>
</RunSettings>

Вам также необходимо включить nugets Nunit3TestAdapter и Microsoft.NET.Test.Sdk (и убедиться, что проект действительно построен, и проверить различные другие более неясные ошибки, упомянутые в других ответах)

  1. Инструменты
  2. Диспетчер пакетов NuGet
  3. Управление пакетами NuGet для решения
  4. Просматривать
  5. NUnit3TestAdapter (NUnit 3 в моем случае..)
  6. После установки должна быть возможность использовать TestExplorer по умолчанию, включенный в установку Visual Studio.

Я проверил версию Nunit и Nunit Test Adapter более подробно, использовал соответствующие версии. например, если вы используете nUnit 2.xx, установите Nunit Test Adapter 2.

У меня была такая же проблема, когда вдруг в окне Test Explorer не появилось ни одного теста. У меня есть обновленная версия "NUnit3TestAdapter" и после многих поисков и усилий,

Я обнаружил, что мне нужно установить следующие значения в свойствах проекта: [В окне Solution Explorer: щелкните правой кнопкой мыши Project > Properties] На вкладке Build установите Platform=x64 и установите Platform target=x86 или Any CPU. Создайте проект и все тесты. появится в окне Test Explorer.

Важное примечание: я пришел к решению, увидев следующее сообщение в окне вывода:

"В тестовом прогоне будут использоваться библиотеки DLL, созданные для платформы Framework45 и платформы X86. Следующие библиотеки DLL не будут частью прогона: AutomationTests.dll создан для Framework Framework45 и платформы X64".

Для VS 2015:

Последний тестовый адаптер 3 имеет проблемы и не показывает тестовые случаи NUnit. Если у вас есть этот, то удалите его и вернитесь к версии 2.0.

Моя проблема решена путем установки тестового адаптера NUnit 2.

Я также обнаружил, что когда я удалил nunit v3.2.1, ссылка на инфраструктуру nunit для v3.2.1 все еще была в моем проекте в обозревателе решений. Обозреватель решений> ProjectName > Ссылки

Если вы щелкните правой кнопкой мыши, он покажет версию. Удалите это, затем щелкните правой кнопкой мыши на References > Add Reference.

Найдите версию 2.x и добавьте, а затем пересоберите решение.

Это сработало для меня!

Просто чтобы добавить свои $.02 здесь, я столкнулся с подобной проблемой только вчера, где 168 моих тестов отсутствовали. Я попробовал почти все в этом посте - особенно убедившись, что мои версии NUnit были одинаковыми - все безрезультатно. Затем я вспомнил, что мои тесты были разделены на плейлисты; и они не обновляются автоматически при добавлении новых тестов. Итак, когда я удалил плейлисты, BAM! Все мои тесты вернулись еще раз.

У меня были некоторые зависшие процессы msbuild.exe. Я не знаю, была ли это моя проблема или нет, но мне потребовалось много времени и ошибок при переустановке различных адаптеров NUnit, прежде чем я обнаружил зависшие процессы.

У меня тоже была эта проблема, но причина была в другом. Я использую VS2017 с F# 4.0.

Во-первых, консоль в Visual Studio не дает достаточно подробностей, почему тесты не могут быть найдены; он просто не сможет загрузить DLL с тестами. Так что используйте NUnit3console.exe в командной строке, так как это дает вам больше деталей.

В моем случае это было потому, что тестовый адаптер искал более новую версию F# Core DLL (4.4.1.0) (F# 4.1), тогда как я все еще использую 4.4.0.0 (F# 4.0). Поэтому я просто добавил это в app.config тестового проекта:

  <dependentAssembly>
    <assemblyIdentity name="FSharp.Core" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
    <bindingRedirect oldVersion="0.0.0.0-65535.65535.65535.65535" newVersion="4.4.0.0" />
  </dependentAssembly>

т.е. перенаправить на более раннее ядро ​​F#.

Я испытал проблему, упомянутую оп

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

эта цепочка задач решила проблему для меня

  • создал тестовый проект,
  • переместил туда тестовые файлы
  • добавлены ссылки, чтобы тестовый проект компилировался
  • добавили пакеты NuGet для адаптеров Nunit и Nunit в тестовый проект
  • перекомпилированы

я смог успешно запустить тесты Nunit.

Другие вопросы по тегам