测试资源管理器(VS)显示“ <未知项目>”


157

使用.NET Framework 4.7和NUnit + NUnit3TestAdapter在VS2019中进行以下所有操作

我创建了一个名为Exitus.Tests的程序集,并添加了一些单元测试。但是,针对我无法解决的Nuget的某些问题,我创建了另一个名为Exitus.UnitTests的项目,并删除了旧项目中包含的一次文件(包括更改名称空间)。

现在,新的测试项目在资源管理器中正确显示了op,但是旧项目的“幽灵”仍然存在:

Visual Studio测试资源管理器

如果我尝试运行测试,则输出窗口将显示以下错误:

System.InvalidOperationException:在Microsoft.VisualStudio.TestWindow.Client.TestContainer.TestContainerProvider上找不到以下TestContainer'C:\ Users \ xxx \ Source \ Repositories \ Expire \ Exitus.Tests \ bin \ Debug \ Exitus.Tests.dll' .d__46.MoveNext()---从上一个引发异常的位置开始的堆栈跟踪---在System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务任务)在System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务任务) )在Microsoft.VisualStudio.TestWindow.Controller.TestContainerConfigurationQueryByTestsBase.d__6.MoveNext()(...)

堆栈跟踪的时间更长,但奇怪的是第二行,指出它在找不到测试容器\Exitus.Tests\bin\Debug\Exitus.Tests.dll。这是旧测试项目的名称,我已删除并删除了该项目。我已经在整个项目中搜索了该词Exitus.Tests,但没有任何结果。

无论如何,是否有必要强制删除此“鬼”项目?


Answers:


323
  1. 关闭Visual Studio
  2. 删除以下*.testlog文件中的文件: solutionfolder \ .vs \ 解决方案名称 \ v16 \ TestStore \ number

3
经过大量反馈,我决定将其更改为接受者的答案。我仍然使用Alex B.的答案,只要您的git储存库中没有关键文件(可能无法跟踪)就可以了。
Noceo

13
.vs 是一个隐藏目录。确保将文件浏览器设置为查看隐藏的目录
香茅油

1
没有解决,我用“ git clean -xfd”解决了
Zax

3
通过删除.vs文件夹或Windows temp / roaming / local文件夹中的魔术隐藏文件,可以解决99%的Visual Studio错误。:C
抓取文件

5
我在内部对此询问。显然问题已在16.5中解决。
Drew Noakes

21

我现在面临着同样的问题。清理帮助。由于我上次遇到VS的清理问题(某些DB锁阻止了真正的清理发生),因此我的工作清理是这样的:

  1. 关闭VS。
  2. 解决方案文件夹中的Git Bash: git clean -xfd

可能有帮助。


2
那行得通,非常感谢。它看起来像您的第一篇文章,如果是这样,我必须说,这曾经是进入的
难处

当我使用XUnit测试运行器在测试DLL之间移动测试时,在测试浏览器结果中看到了几次“未知项目”。我发现删除与我的解决方案文件位于同一文件夹中的.vs文件夹就足够了。
Frank Schwieterman

8
此答案将删除源代码管理中未包含的所有内容,因此,如果不签入launchSettings.json之类的内容,则可能要使用pwretmo的答案。
肖恩

4
@pwretmo答案是针对特定问题的更安全,更直接的答案。
snowcode

2
社区已经发言。我已更改了接受的答案,以最好的方式帮助他人。这个答案对我来说仍然不错,但我认为它可能带来某些风险。我仍然非常感谢您的帮助:-)。
Noceo

0

这些解决方案都不适合我。我可以通过关闭Visual Studio删除.vs ”文件夹来使测试资源管理器正常工作。然后重新打开解决方案,并让其重建。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.