Test Explorer (VS) показывает «<неизвестный проект>»

157

Все, что ниже, сделано в VS2019 с использованием .NET Framework 4.7 и NUnit + NUnit3TestAdapter.

Я создал сборку под названием Exitus.Tests и добавил несколько юнит-тестов. Однако из-за некоторых проблем с Nuget, которые я не мог решить, я создал другой проект под названием Exitus.UnitTests и удалил один раз файл, который у меня был в старом проекте (включая изменение пространства имен).

Теперь новый тестовый проект показал правильную работу в проводнике, но «призрак» старого проекта остался:

Проводник тестов Visual Studio

Если я попытаюсь запустить тест, в окне вывода отобразится следующая ошибка:

System.InvalidOperationException: не был найден следующий TestContainer 'C: \ Users \ xxx \ Source \ Repositories \ Expire \ Exitus.Tests \ bin \ Debug \ Exitus.Tests.dll' в Microsoft.VisualStudio.TestWindow.Client.TestContainer.TestContainerProvider .d__46. ) в Microsoft.VisualStudio.TestWindow.Controller.TestContainerConfigurationQueryByTestsBase.d__6.MoveNext () (...)

Трассировка стека намного длиннее, но любопытной является вторая строка, утверждающая, что не может найти тестовый контейнер в \Exitus.Tests\bin\Debug\Exitus.Tests.dll. Это название старого тестового проекта, который я удалил и удалил. Я искал весь свой проект по этому термину, Exitus.Testsи он не дал результатов.

Есть ли способ принудительно удалить этот «призрачный» проект?

Noceo
источник
1
stackoverflow.com/questions/59545634/…
Ганс Пассант

Ответы:

325
  1. Закрыть Visual Studio.
  2. Удалите *.testlogфайлы в папке решений : \ .vs \ имя решения \ v16 \ TestStore \ number .
Питер Ретмо
источник
3
После большого количества отзывов я решил изменить это на приемлемый ответ. Я все еще использовал ответ Алекса Б., который прекрасно работает, пока у вас нет критических файлов в вашем репозитории git, которые могут не отслеживаться.
Ночео
13
.vs это скрытый каталог Убедитесь, что ваш файловый
менеджер отображает
1
Не решительный, я решил "git clean -xfd"
Zax
3
99% ошибок visual studio решаются удалением волшебных скрытых файлов в папке .vs или папке windows temp / roaming / local. : C
filescraps
5
Я внутренне спросил об этом. Видимо проблема исправлена ​​в 16.5.
Дрю Ноакс
21

Я столкнулся с той же проблемой прямо сейчас. Очистка помогла. Поскольку в последний раз у меня возникали проблемы с очисткой VS (некоторые блокировщики DB мешали настоящей очистке), моя рабочая очистка была такой:

  1. Закрыть VS.
  2. Git Bash в папке с решением: git clean -xfd

Наверное, это помогает.

Алекс Б.
источник
2
Это сработало, большое спасибо. Похоже, ваш первый пост, если это так, я должен сказать, что это когда-то чертовски вход, чтобы сделать :-)
Noceo
Несколько раз я видел результаты «Uknown Project» в проводнике тестов, когда перемещал тесты между DLL-библиотеками тестов с помощью тестового прогона XUnit. Я обнаружил, что достаточно удалить папку .vs, которая находится в той же папке, что и файл моего решения.
Фрэнк Швитерман
8
Этот ответ удалит все, что не находится под контролем исходного кода, поэтому, если вы не включите такие вещи, как launchSettings.json, вы можете вместо этого использовать ответ pwretmo.
Шон
4
Ответ @pwretmo - более безопасный и прямой ответ на конкретную проблему.
снежный код
2
Сообщество высказалось. Я изменил принятый ответ, чтобы помочь другим наилучшим образом. Этот ответ все еще был хорош для меня, но я понимаю, что он может представлять определенные риски. Я все еще очень благодарен за помощь, хотя :-).
Ночео
1

Ни одно из этих решений не помогло мне. Мне удалось запустить тестовый проводник, закрыв visual studio и удалив папку « .vs ». Затем снова откройте решение и дайте ему восстановить.

N-поели
источник