Модульные тесты не обнаружены в Visual Studio 2017

213

Я боролся с VS 2017, так как я установил его. Теперь кажется, что модульные тесты будут запускаться только из командной строки «dotnet test».

Мой проект .NET Core 1.1.1. У меня есть SDK и обновление фреймворка для 1.1.1.

Я попробовал образец на MSDN ( https://msdn.microsoft.com/en-us/library/ms182532.aspx ), который также не работает точно так же.

Все пакеты NuGet для тестов и основного проекта являются актуальными. И тестовый проект и основной проект строят без ошибок. Тесты успешно запускаются из командной строки.

Кто-нибудь получил юнит-тесты для запуска в VS 2017, если да, то как?

Спасибо Джон


Обновление - Расширить

Вот пример простого тестового проекта, который не работает на GitHub . Это пример с xUnit, но я пробовал NUnit и визуальную студию, встроенную в MS тесты. Независимо от того, какое тестирование или какие изменения я делаю, я не могу заставить тестировщика VS найти какие-либо тесты.

Что я пробовал

  • Удаление файлов тестового кеша VS DEL %TEMP%\VisualStudioTestExplorerExtensions
  • Перезапуск VS
  • Проводник тестов закрытия / открытия
  • для xUnit установлен Microsoft.DotNet.InternalAbstractions( см. сообщение SO )
  • для NUnit убедитесь, что адаптер установлен и та же версия (3), что и в пакете NUnit
  • test -> test settings -> default processor architecture установлен на x86

Вопрос
Может ли кто-нибудь предоставить рабочий пример решения .Net Core 1.1.0 в VS2017 (файлы проекта .csproj), в котором проводник тестов VS успешно находит модульные тесты ИЛИ показать мне проблему в приведенном примере.

Джон Пеццанит
источник
Я обнаружил, что VS2017 не устанавливает все необходимые пакеты. Когда я попытался перенести MonoGame со старого компьютера на новый с недавно установленной Windows 10 и VS 2017, он начал выдавать странные ошибки об отсутствующих пакетах. После установки VS2015 вместе с VS2017 все проблемы исчезли. Может быть, попробуйте установить VS2015 дополнительно.
Матеуш
2
Попробуйте установить пакеты Tests с помощью установщика Visual Studio
Маркиян Беновский
Я смотрю, если в VS 2017 все переменные окружения установлены правильно.
Джон Пеццаните
1
Для NUnit необходимо использовать пакет NuGet для адаптера, и он должен быть 3.8.0-alpha1 или новее.
Роб
2
В моем случае это было просто наличие app.configфайла в моем тестовом проекте: stackoverflow.com/a/47497668/67824 .
Охад Шнайдер

Ответы:

189

В моем случае оказалось, что мне просто нужно обновить свои тестовые адаптеры и тестовую среду. Готово.

Пример использования диспетчера пакетов NuGet:

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

Качественный катализатор
источник
4
Это помогло мне тоже! Обратите внимание, что вы можете «Управлять пакетами Nuget» на уровне решения и делать это для всех проектов, где это требуется. Затем вы можете получить ошибки «неоднозначной ссылки» - для этого просто удалите старую DLL (Microsoft.VisualStudio.QualityTools.UnitTestFramework) из ссылок
Prashanth Subramanian
48
Эти вещи должны быть расширениями Visual Studio, а не пакетами NuGet.
Jaider
1
У нас есть много старых проектов MSTest, и я не знал, что они перешли на пакет NuGet. Это решило и меня, изначально думал, что это ошибка в новых версиях ReSharper, пока я не понял, что VS Test Explorer также не может обнаружить мои тесты.
Дэвид Андерсон
1
Я сделал то же самое, что и в этом ответе. В своем решении VS2017 я добавил проект MSTest, добавил несколько тестов, но создание решения привело бы к следующему: обнаружение теста завершено: 0 найдено. Итак, для тестового проекта в диспетчере пакетов NuGet (вы также можете сделать это на уровне решения) я обновил MSTest.TestAdapter и MSTest.TestFramework с v1.1.18 до v1.2.0. Затем, после выполнения сборки, мои тесты теперь отображаются в Test Explorer.
Кершоу
1
Отлично сработало для меня, я должен был зайти в диспетчер пакетов nuget в VS2017 для конкретного тестового проекта и просто обновить различные пакеты, такие как nunit и т. Д., Затем собрать> перестроить и все в порядке.
Тахир Халид
126

Это просто сработало для меня (не знаю, является ли это результатом изменения рабочих областей, которые что-то повредили):

Удаление файлов кэша теста VS в% TEMP% \ VisualStudioTestExplorerExtensions и перезапустите VS2017.

PmanAce
источник
4
Это сработало один раз, а не потом. Что (на этот раз) исправило это для меня, так это удаление папки TestResults и bin / obj (вместе с этой временной очисткой каталога)
icesar
24
Любой, кто задается вопросом, где %TEMP%- принесите окно командной echo %TEMP%
строки
21
Папка не существует в temp: /
Дуглас Гаскелл
так в чем причина такого поведения?
Михаил Сенютович
1
Самый простой способ получить доступ к% TEMP% - это выиграть + R и набрать% TEMP%
PontiusTheBarbarian
58

API для тестовых адаптеров для .NET Core изменился с выпуском Visual Studio 2017 и переходом от project.jsonформата к csprojформату. Это сделало существующие dotnet-test-*адаптеры dotnet-test-nunitустаревшими.

Адаптеры были обновлены, но способ настройки и запуска тестов в Visual Studio или в командной строке dotnet testтребует различных ссылок в ваших тестовых проектах. Остерегайтесь любой документации, в которой вы найдете эти справочные пакеты в dotnet-test-*формате, поскольку они устарели.

Во-первых, ваш тестовый проект должен быть нацелен на конкретную платформу: .NET Core или .NET Framework. Он не может быть нацелен на .NET Standard, даже если код, который вы тестируете, является .NET Standard. Это потому, что цель тестов указывает, на какой платформе запускать тесты. .NET Standard похож на PCL (Portable Class Library) в том, что он может работать на многих платформах.

Затем вам нужно добавить ссылки на Microsoft.NET.Test.Sdkвыбранный вами тестовый фреймворк и совместимый тестовый адаптер. Для NUnit ваши ссылки будут выглядеть так,

<itemgroup>
    <packagereference Include="Microsoft.NET.Test.Sdk" Version="15.0.0"></packagereference>
    <packagereference Include="NUnit" Version="3.7.1"></packagereference>
    <packagereference Include="NUnit3TestAdapter" Version="3.8.0"></packagereference>
</itemgroup>

Комментарий выше упоминает добавление,

<ItemGroup>
    <Service Include="{82a7f48d-3b50-4b1e-b82e-3ada8210c358}" />
</ItemGroup>

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

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

Для получения дополнительной информации см. Тестирование .NET Core с NUnit в Visual Studio 2017

Роб Проуз
источник
2
Ориентация на .NET Framework вместо .NET Standard работала для меня. Спасибо.
Бен Грисволд
7
Эта ссылка на Microsoft.NET.Test.SDK отсутствовала в моем проекте, и нигде не было никаких указаний на то, что что-то полагалось на ее отображение. Добавил через консоль nuget и все заработало. Спасибо за список ссылок!
GWhite
Мне пришлось скопировать эту папку из коллеги в мой временный каталог и перезапустить VS:% TEMP% \ VisualStudioTestExplorerExtensions \ MSTest.TestAdapter.1.1.18
Heiner
Как я могу протестировать проект Netstandard 2.0, если я изменю свою Target Framework? Я больше не могу компилировать, потому что на проект netstandard2.0 нельзя ссылаться на проект, который ссылается на net46
Jerome2606
1
Это сработало для меня. Спасибо за подробное решение.
Талха Ашфак
42

У меня была та же проблема, и я получил ее, выполнив следующие действия:

  • Сначала закройте все открытые экземпляры Visual Studio и удалите эту папку:% TEMP% \ VisualStudioTestExplorerExtensions. ( Запуск тестов в Visual Studio )
  • Перейдите в менеджер пакетов Nuget и сначала установите Microsoft.NET.Test.Sdk (15.3.0-preview-20170425-07), а затем установите xunit.runner.visualstudio (2.3.0-beta1-build1309). Смотрите прикрепленный скриншот Nuget, чтобы увидеть все пакеты, которые мне пришлось установить, чтобы получить последнюю версию VS 2017 для обнаружения моих тестов.Скриншот Nuget
Санчал Куннель
источник
35
Мне достаточно было удалить % Temp% \ VisualStudioTestExplorerExtensions .
Хуан Пабло Гомес
Yeap. Просто удалив это и перезапустив VS исправил это.
Хуан Карлос
Кто-нибудь знает, что вызывает это в первую очередь? У меня было такое дважды со мной сейчас, но удаление этой папки и перезапуск VS работал. Это просто странно.
RubyHaus
@PmanAce - я сделал, на самом деле. Я использую два разных экземпляра TFS (по одному на проект), поэтому рабочая область изменяется автоматически при переключении проектов.
RubyHaus
удаление папки и добавление nuget, Microsoft.NET.Test.Sdkпохоже, работает для меня .. спасибо StackOverflow. (Решение .NET Framework WebApi 2)
bkwdesign,
41

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

У меня был проект xUnit по умолчанию, и я удалил образец UnitTest1.cs, заменив его тестовым классом контроллера, с парой тестов, но ни один не был найден

Короче говоря, после обновления пакетов xUnit, Test.Sdk, xUnit.runner и перестройки проекта я обнаружил ошибку сборки:

Ошибка xUnit1000 Тестовые классы должны быть открытыми

К счастью, обновленная версия выбросила это исключение, чтобы избавить меня от проблем

Модификация тестового класса для публичного исправления моя проблема

kidroca
источник
6
не уверен, почему проголосовал против, но до моего утреннего кофе на 100% это упустил я.
Андрей
1
Пробовал все остальные ответы на этот вопрос / проблему, и это был тот, который, наконец, работал!
FastTrack
3
Этот невероятно смущает, но ... что угодно. Самое смешное, что если вы создадите набор тестов в VS2017, он не будет генерировать publicкласс, а только класс, поэтому он не обнаружит его, пока вы не добавите publicидентификатор.
Бриошье
конечно. мой плохой - mstest должен иметь эту функцию.
Крисмограмма
10

В моем случае я нацеливаю тестовый проект на x64Архитектуру, а для параметра настройки архитектуры (test-> Default Processor Architecture) было изменено значение x86. Они не совпадали.

После восстановления настроек теста для параметра Архитектура x64и повторного построения все тесты были обнаружены снова.

MiguelSlv
источник
в vs2017 настройка в меню Test -> Test Settings -> Default Processor Architecture
IcyBrk,
8

У меня были проблемы с VS 2017, когда я нашел свой UnitTest. Это была не та проблема, о которой Джон спрашивал, но это был первый результат в Google, который я искал, поэтому я хотел поделиться своей проблемой.

У меня было устаревшее решение, возвращающееся с VS2010 и переходящее на VS2013, VS2015. Теперь в VS2017 кажется, что пространства имен для [TestMethod]атрибута изменились.

До того, как он использовал

Microsoft.VisualStudio.QualityTools.UnitTestFramework, Version=10.0.0.0

Я создал новый Test.dll в проекте и тот, который используется по умолчанию

Microsoft.VisualStudio.TestPlatform.TestFramework, Version=14.0.0.0

Поэтому я решил создать новый проект UnitTest из VS2017. Возможно, изменение ссылок на сборку для старого тестового проекта также сработало бы. С новой ссылкой VS2017 обнаружил эти юнит-тесты.

hartmape
источник
К сожалению, даже у нового проекта модульных тестов нет своего тестового показа для меня: /
Дуглас Гаскелл
7

Не читайте устаревшие статьи под MSDN. Соответствующие материалы по .NET Core находятся на сайте docs.microsoft.com.

https://docs.microsoft.com/en-us/dotnet/articles/core/testing/

Вообще говоря, вам нужно консольное приложение .NET Core, содержащее примеры модульных тестов.

Лекс Ли
источник
Большое спасибо, Лекс. Если эта статья верна, единственный способ протестировать .NET Core - из командной строки - таким образом, теряется вся интеграция с VS, которая была у нас с работающими тестами в VS 2015. Прав ли я в этом?
Джон Пеццаните
Вы используете xUnit.net или MSTest?
Лекс Ли
@JohnPezzanite вы должны показать больше того, что вы сделали (возможно, репозиторий GitHub, если это возможно). У меня есть проекты на GitHub, который работает безупречно, как и многие другие.
Лекс Ли
Следуйте примеру в строке, которую я поставил. Я пробовал это на стандарте .NET и .NET Core, на модульных тестах Microsoft, как в примере, и на xUnit. Стандарт .NET интегрируется с VS 2017, тогда как .NET Core запускается только из командной строки. Но я повторяю то, что я сказал выше. Похоже, что Microsoft удалила все
бланки
@JohnPezzanite test GitHub.com/lextm/sharpsnmplib и его решение NetStandard.
Лекс Ли
6

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

[TestClass]
  internal class TestLib {
}

это привело к тому, что тест-кейсы не были опознаны.

TARJU
источник
5

Убедитесь, что вы используете правильный Microsoft.NET.Test.Sdk:

<PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.0.0" />

Не используйте предварительную версию. Или вы должны перейти на консольное приложение (не библиотека). У меня похожая проблема, но с последней версией (15.0.0) она снова начинает работать.

Также вам может потребоваться добавить:

  <ItemGroup>
    <Service Include="{82a7f48d-3b50-4b1e-b82e-3ada8210c358}" />
  </ItemGroup>

но я не думаю, что это необходимо.

Алекс Альтоцкий
источник
В каком файле это находится? Я могу найти часть «Служба включения» в файле моего проекта (* .csproj), но не PackageReference.
Крис Беннет
@ChrisBennet в вашем файле * test.csproj.
Евгений Набоков
1
@ evgeni-nabokov прав. Все эти изменения находятся в файле [project] .test.csproj. Щелкните правой кнопкой мыши проект в решении и выберите «Редактировать [проект] .test.csproj». См. Пример по адресу: github.com/RenetConsulting/angularcore.net/blob/master/Business/…
Алекс Альтоцкий,
5

Я знаю, что OP перечислил это в своем контрольном списке, но этот момент легко упустить из виду при чистой установке Visual Studio 2017 и настройке нового проекта. Помимо шаблона проекта NUnit и NUnit Framework необходимо отдельно установить адаптер NUnit, например, с помощью команды NuGet Install-Package NUnit3TestAdapter -Version 3.9.0. После этого Visual Studio Community 2017 начал обнаруживать модульные тесты без каких-либо проблем.

Марцин Тарсье
источник
1
Это помогло мне!
YvesR
О боже, этот сделал это для меня. Если бы я мог обливать тебя милостью, я бы так и сделал.
Эш
Это было единственное решение, которое сработало для меня, спасибо!
Вадим Тофан
5

В моем случае Test Explorer не смог найти мои тесты после того, как я переместил проект в новое решение.

Ответ был просто, что у меня была ссылка на старый MS Test Adapter в моем проекте.

У меня был дубликат строки ниже для версии 1.1.11 MS Test Adapter в моем файле cs.proj:

<Import Project="..\packages\MSTest.TestAdapter.1.1.18\build\net45\MSTest.TestAdapter.props" Condition="Exists('..\packages\MSTest.TestAdapter.1.1.18\build\net45\MSTest.TestAdapter.props')" />

Решить проблему,

  1. Щелкните правой кнопкой мыши по проекту и выберите «Разгрузить проект».
  2. Щелкните правой кнопкой мыши проект и выберите «Изменить»
  3. Удалить строку, которая импортирует старую версию адаптера.
  4. Щелкните правой кнопкой мыши по проекту и выберите «Обновить проект».
  5. Восстановить решение / проект
Jamo
источник
Была такая же проблема. Удаление и восстановление решения не сработало. Перезапустил VS и тесты были обнаружены!
Майк Уорд
4

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

Оказывается, мой тестовый класс не был публичным! Обнародование позволило VS открыть для себя тесты.

Dahui
источник
2

Для меня было проще создать новый тестовый проект, который прекрасно работает с Visual Studio 2017 ... и просто скопировать тестовые файлы, добавить ссылки и пакеты NuGet по мере необходимости.

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

Jaider
источник
создание нового проекта, вероятно, сэкономило часы головной боли!
М.Казем Ахгари
2

В моем случае это был проект, в котором я обновил тестовый проект с более ранней версии .Net. в app.config у меня были привязки к предыдущим версиям зависимых сборок.

После исправления сборочных привязок в app.config мои тесты были обнаружены.

Хенрик Геринг
источник
2

открытие

Приведенные выше ответы не сработали (перезапуск, обновление до версии 1.1.18 ... Я уже обновился, удаление временных файлов, очистка кеша NuGet и т. Д.).

Я обнаружил, что у меня были разные ссылки на MSTest.TestAdapter и MSTest.Framework в разных тестовых проектах (у моего решения их два). Один был указан в 1.1.18 как ...

packages.config

<package id="MSTest.TestAdapter" version="1.1.18" targetFramework="net461" />
<package id="MSTest.TestFramework" version="1.1.18" targetFramework="net461" />

... но у другого есть ссылки на 1.1.11. Некоторые ответы выше приводят к этому открытию, когда две версии библиотек обнаружились в моем временном каталоге (% TEMP% \ VisualStudioTestExplorerExtensions \) после перезапуска Visual Studio.

Решение

Простое обновление моего packages.config до версии 1.1.18 - вот что восстановило функциональность моих модульных тестов в VS. Похоже, что есть некоторые ошибки, которые не допускают параллельные ссылки на библиотеки MSTest. Надеюсь, это поможет вам.

Больше информации:

  • Visual Studio 2017 Ent: 15.5.6 (я обновил с 15.0.1 с надеждой исправить эту проблему, но у меня было это в обоих)
ebol2000
источник
2

Решением было удаление моего app.configфайла из моего проекта модульного тестирования. Тесты появятся снова!

Этот файл ссылается на некоторые библиотеки DLL в связывающих направлениях, которых на самом деле не было в ссылках проекта. Повторно добавьте сборочные привязки, которые строго необходимы для вашего проекта.

domenu
источник
1

В моем случае это был проект UWP, присутствующий в решении проблемы.

Когда я выгрузил проект UWP, тесты были обнаружены. Когда я загрузил его обратно, тест снова исчез.

Попробуйте выгрузить все проекты и сохранить только тестовый проект. Десять восстановительных растворов и тестовых шундов появятся в Test Runner. Загружайте проекты один за другим и перестраивайте решение каждый раз, чтобы выяснить, какой проект вызывает проблему

образец репо

VS сообщение об ошибке

Liero
источник
Ценю ответ, но это не моя проблема. Если вы посмотрите на пример репозитория, на который я ссылался в своем вопросе, в решении есть только один проект. Нет других проектов для удаления. Это решение является тестом, поэтому я попробовал то, что вы сказали, разгрузив проекты на моем реальном решении, но оно не сработало.
rayepps
1

Проблема

Проблема в том, что Visual Studio «запутывается» из-за версий ядра dotnet на компьютере. Когда я зашел в панель управления -> удалить программы, у меня было 8 разных SDK с ядром dotnet и установленные среды выполнения. Это как-то заставляло VS молча иметь ошибку при попытке найти тесты.

Проверить проблему

Вы можете проверить проблему, перейдя в командную строку и получив версию dotnet $ dotnet --version. Если вы видите что-либо, кроме последней установленной вами версии, значит, ваше устройство не соответствует и не использует правильную версию. Пример ... Если у вас установлено ядро ​​dotnet, 1.0.1но когда вы получаете версию из командной строки, она говорит1.0.0 это проблема.

Решение

Удалить все старые вещи. Я начал только с того, что мне нужно было удалить (самые старые версии dotnet rc), но он все равно дал неправильную версию при тестировании проблемы. В конце концов я согласился сделать полную чистку. Я...

  • Удалил все приложения Visual Studio (на моей машине VS2015 и VS2017)
  • Деинсталлированы все версии ядра dotnet (даже самые последние)

После того, как моя машина была полностью пуста от всех VS и донета, я установил только VS2017 (он поставляется в комплекте с последним dotnet). Я создал тестовый проект xUnit, и тестовый проводник сразу нашел тест решен

Это может показаться излишним, но я потратил две недели, пытаясь исправить это другими способами. Если у вас возникла проблема, просто сделайте это, даже если вам потребуется несколько часов, чтобы удалить / переустановить элементы, это, вероятно, сэкономит ваше время.

Ссылки

  • Смотрите @epestic сообщение в блоге, где он дает более подробную информацию об устранении проблемы.
rayepps
источник
1

Я перепробовал все, но ничего не помогло. В моем случае у меня было решение с несколькими тестовыми проектами, и некоторые из них использовали старую среду ms-test, поэтому Visual Studio нашла только их.

Я установил пакеты инфраструктуры тестирования для всех тестовых проектов, как показано в принятом ответе . Затем удалил ссылки на старые качественные инструменты, перезапустил Visual Studio и теперь я вижу все тесты.

t3chb0t
источник
1

Для C ++:

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

Если вы только установили разработку для рабочего стола с C ++ , то решением будет также установить разработку универсальной платформы Windows с помощью дополнительных инструментов универсальной платформы Windows C ++ . Вы можете выбрать их в веб-установщике Visual Studio.

После этого пересоберите ваш тестовый проект, и тестовое обнаружение должно работать.

Кстати, я создал проект модульного тестирования в VS2017. Может быть важно, потому что некоторые пользователи упоминали, что у них были проблемы с обнаружением в проектах, которые были перенесены с VS2015 на VS2017.

фэн
источник
1

Удаление старого .dll должно помочь. Очистка временных файлов, расположенных в каталоге% TEMP% в C: \ Users (имя пользователя) \ AppData \ Local \ Temp

Таня Фоменко
источник
1

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

Наконец, я понизил версию Microsoft.VisualStudio.TestPlatform.TestFrameworkи Microsoft.VisualStudio.TestPlatform.TestFramework.Extensionsустановил пакеты до очень старой версии (с помощью диспетчера NuGet), после чего появились методы тестирования. Затем я обновился до последней версии, и все же там были.

Так что просто понизьте и обновите пакеты.

FLICKER
источник
1

В моем случае ничто из перечисленного не поможет мне. Но я понижаю NUNit3TestAdapter до версии 3.8.0, затем обновляю до последней (3.10.0)

vlatko606
источник
1

Иногда смена пространства имен тестов работает. У меня была структура папок следующим образом:

A |___B | |___D |___C___E

Пространство имен было плоским, как Tests. <Имя>, и они не отображались в окне теста. Когда я изменил пространство имен на структуру каталога, обнаружились все тесты. Теперь я могу вернуться к любой другой структуре пространства имен, которую захочу.

Не забудьте построить свой проект!

Рохан
источник
1

В случае .NET Framework в тестовом проекте ранее были ссылки на следующие библиотеки DLL:

Microsoft.VisualStudio.TestPlatform.TestFramework
Microsoft.VisualStudio.TestPlatform.TestFramework.Extentions

Я удалил их и добавил ссылку на:

Microsoft.VisualStudio.QualityTools.UnitTestFramework

И тогда все тесты появились и начали работать так же, как и раньше.

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

U.Savas
источник
1

Я столкнулся с той же проблемой, в моем случае, чтобы решить

  1. Я открыл консоль Windows (Windows Key + CMD).
  2. Перейдите в папку, в которой был создан проект.
  3. Выполненная команда «Тест Dotnet» - это в основном тот же тест, который выполняет Visual Studio, но когда вы запускаете его через консоль, он позволяет вам увидеть полный след.
  4. Я получил это сообщение об ошибке «Атрибут TestClass определен для закрытого класса MSTest.TestController.BaseTest»
  5. Итак, я пошел в тестовый пример и отметил его как общедоступный, собрал заново, и мои тесты отображаются правильно
axcha15
источник
0

Сначала я попытался использовать MSTest. После этого я изменяю его на тест Nunit. Тогда я хотел поддержать MSTest. Я удалил все коды и ссылки nUnit, но Test Explorer не показывал методы MSTest. Решение: я удалил все ссылки на mstest nuget и переустановил. Готово.

Огужан киркали
источник
0

Для меня изменение TargetFramework в .csprojфайле тестового проекта с

  <PropertyGroup>
    <TargetFramework>netcoreapp2.0</TargetFramework>
  </PropertyGroup>

в

  <PropertyGroup>
    <TargetFramework>net46</TargetFramework>
  </PropertyGroup>

работал.

JDawg
источник
0

В моем случае проблема заключалась в том, что тип проекта был установлен на статическую библиотеку (lib), и это должна быть динамическая библиотека (dll)

kjhf
источник