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

183

以下所有内容均是使用VS2019,.NET Framework 4.7和NUnit + NUnit3TestAdapter制作的。

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

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

Visual Studio test explorer

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

System.InvalidOperationException: 找不到以下TestContainer'C:\Users\xxx\Source\Repositories\Expire\Exitus.Tests\bin\Debug\Exitus.Tests.dll' at Microsoft.VisualStudio.TestWindow.Client.TestContainer.TestContainerProvider.d__46.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Microsoft.VisualStudio.TestWindow.Controller.TestContainerConfigurationQueryByTestsBase.d__6.MoveNext() (...)

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

有没有办法强制删除这个“幽灵”项目?


1
https://dev59.com/NLjna4cB1Zd3GeqP9F_3 - Hans Passant
5个回答

386
  1. 关闭 Visual Studio
  2. 在以下文件夹中删除 *.testlog 文件: solutionfolder\.vs\solution name\v16\TestStore\number

3
经过很多反馈,我决定将其更改为被接受的答案。我仍然使用了Alex B.的答案,只要你在git存储库中没有关键文件未被跟踪,它就能正常工作。 - Jakob Busk Sørensen
15
“.vs” 是一个隐藏文件夹。请确保设置文件资源管理器以查看隐藏文件夹。 - citronas
4
99%的Visual Studio错误可以通过删除.vs文件夹中的魔法隐藏文件或Windows的temp/roaming/local文件夹中的文件来解决。 :C - filescraps
5
我已内部咨询此事,显然问题已在16.5中得到解决。 - Drew Noakes
我想知道发现者是如何第一次找到这个解决方案的! - Mahdi Tahsildari
显示剩余3条评论

22

我现在遇到了同样的问题,清理解决了。由于最近我在VS中遇到了清理问题(某些DB锁阻止了真正的清理),我的工作清理是这样的:

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

可能能帮助解决问题。


3
好的,非常感谢。看起来这是你的第一篇帖子,如果是这样的话,我必须说这是一个非常出色的入场方式 :-) - Jakob Busk Sørensen
当我使用XUnit测试运行器将测试从测试DLL移动时,我在测试资源管理器结果中几次看到了“未知项目”。我发现只需删除与我的解决方案文件位于同一文件夹中的.vs文件夹即可。 - Frank Schwieterman
我再次遇到了同样的问题。@pwretmo建议的解决方案对我也起作用了,而且显然更好,因为它对解决方案的影响更小。应该更改已接受的答案。 - Alex B.
9
这个答案会删除任何不在源代码控制中的内容,所以如果你没有将像launchSettings.json这样的东西检入代码库,你可能想使用pwretmo的答案。 - Sean
4
@pwretmo的回答对于这个具体问题来说更加安全和直接。 - snowcode
3
社区已经表达了意见。我改变了被接受的答案,以最好的方式帮助其他人。这个答案对我来说仍然可以,但我明白它可能会带来一定的风险。尽管如此,我仍然非常感谢你的帮助 :-)。 - Jakob Busk Sørensen

1

这两种方法都对我不起作用。我通过关闭Visual Studio删除.vs”文件夹来使测试资源管理器工作。然后重新打开解决方案并让它重建。


1
根据Visual Studio开发者社区的反馈(通过点击帮助菜单并选择反馈),将Visual Studio更新至16.5.5版本即可解决该问题。顺便提一下:这个版本是在2020年2月发布的。
我可以确认它有效(我之前使用的是VS 16.4.6)。

0

以下是步骤:

  1. 关闭Visual Studio

  2. 进入项目文件夹

  3. 找到“.vs”文件夹。(确保您也检查了隐藏的项目)

  4. 删除“.vs”文件夹。

  5. 完成,打开Visual Studio,构建和运行项目。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接