Test Explorer (VS) pokazuje „<Nieznany projekt>”


157

Wszystko poniżej jest zrobione w VS2019, przy użyciu .NET Framework 4.7 i NUnit + NUnit3TestAdapter

Stworzyłem zespół o nazwie Exitus.Tests i dodałem kilka testów jednostkowych. Jednak zrób kilka problemów z Nuget, których nie mogłem rozwiązać, stworzyłem inny projekt o nazwie Exitus.UnitTests i usunąłem kiedyś plik, który miałem w starym projekcie (w tym zmieniłem przestrzeń nazw).

Teraz nowy projekt testowy pokazał poprawnie w eksploratorze, ale pozostał „duch” starego projektu:

Eksplorator testów Visual Studio

Jeśli spróbuję uruchomić test, okno wyjściowe pokazuje następujący błąd:

System.InvalidOperationException: Nie znaleziono następującego TestContainer 'C: \ Users \ xxx \ Source \ Repositories \ Expire \ Exitus.Tests \ bin \ Debug \ Exitus.Tests.dll' w Microsoft.VisualStudio.TestWindow.Client.TestContainer.TestContainerProvider .d__46.MoveNext () --- Śledzenie końca stosu z poprzedniej lokalizacji, w której zgłoszono wyjątek --- w System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (Zadanie zadania) w System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebugger TaskNotification ) w Microsoft.VisualStudio.TestWindow.Controller.TestContainerConfigurationQueryByTestsBase.d__6.MoveNext () (...)

Ślad stosu jest znacznie dłuższy, ale ciekawostką jest druga linia, stwierdzająca, że ​​nie można znaleźć kontenera testowego \Exitus.Tests\bin\Debug\Exitus.Tests.dll. To jest nazwa starego projektu testowego, który usunąłem i usunąłem. Przeszukałem cały projekt pod kątem tego terminu Exitus.Testsi nie zwraca on żadnych wyników.

Czy istnieje sposób, aby siłą usunąć ten projekt „duchów”?


Odpowiedzi:


323
  1. Close Visual Studio.
  2. Usuń *.testlogpliki z: folder rozwiązania \ .vs \ nazwa rozwiązania \ v16 \ TestStore \ number .

3
Po wielu opiniach postanowiłem zmienić to na odpowiedź akceptacyjną. Nadal użyłem odpowiedzi Alexa B., która działa dobrze, dopóki nie masz krytycznych plików w repozytorium git, które mogą nie być śledzone.
Noceo

13
.vs to ukryty katalog. Pamiętaj, aby ustawić eksplorator plików, aby wyświetlał ukryte katalogi
citronas

1
Nierozwiązane, rozwiązałem za pomocą „git clean -xfd”
Zax

3
99% błędów studio wizualnego rozwiązuje się poprzez usunięcie magicznych ukrytych plików w folderze .vs lub folderze temp / roaming / local systemu Windows. : C
filecraps

5
Zapytałem o to wewnętrznie. Najwyraźniej problem został naprawiony w 16.5.
Drew Noakes

21

W tej chwili stanąłem przed tym samym problemem. Oczyszczanie pomogło. Ponieważ po raz ostatni miałem problemy z czyszczeniem VS (niektóre DB-lock uniemożliwia prawdziwe czyszczenie), moje działające czyszczenie było następujące:

  1. Zamknij VS.
  2. Git Bash w folderze rozwiązania: git clean -xfd

Prawdopodobnie to pomaga.


2
To działało, dziękuję bardzo. Wygląda na to, że to twój pierwszy post, jeśli tak jest, muszę powiedzieć, że to było kiedyś wejście do zrobienia :-)
Noceo 18.12.19

Kilka razy widziałem „Projekt Uknown” w wynikach eksploratora testów, gdy przenosiłem testy między testowymi bibliotekami DLL za pomocą programu uruchamiającego XUnit. Stwierdziłem, że wystarczy usunąć folder .vs, który był w tym samym folderze, co mój plik rozwiązania.
Frank Schwieterman,

8
Ta odpowiedź usunie wszystko, co nie jest pod kontrolą źródła, więc jeśli nie zaznaczysz rzeczy takich jak launchSettings.json, możesz zamiast tego użyć odpowiedzi pwretmo.
Sean,

4
Odpowiedź @pwretmo to bezpieczniejsza i bardziej bezpośrednia odpowiedź na konkretny problem.
kod śniegu

2
Społeczność przemówiła. Zmieniłem przyjętą odpowiedź, aby pomóc innym w najlepszy możliwy sposób. Ta odpowiedź wciąż była dla mnie w porządku, ale rozumiem, że może wprowadzić pewne ryzyko. Mimo to jestem bardzo wdzięczny za pomoc :-).
Noceo

0

Żadne z tych rozwiązań nie działało dla mnie. Udało mi się uruchomić eksploratora testów, zamykając studio wizualne i usuwając folder „ .vs ”. Następnie otwórz ponownie rozwiązanie i pozwól mu je odbudować.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.