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

Posted

技术标签:

【中文标题】测试资源管理器 (VS) 显示“<未知项目>”【英文标题】:Test Explorer (VS) shows '<Unknown project>' 【发布时间】:2020-04-11 00:05:26 【问题描述】:

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

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

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

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

System.InvalidOperationException:未找到以下 TestContainer 'C:\Users\xxx\Source\Repositories\Expire\Exitus.Tests\bin\Debug\Exitus.Tests.dll' 在 Microsoft.VisualStudio.TestWindow.Client.TestContainer.TestContainerProvider.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 一词,但没有返回任何结果。

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

【问题讨论】:

***.com/questions/59545634/… 【参考方案1】:

步骤如下

    关闭 Visual Studio

    进入项目文件夹

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

    删除“.vs”文件夹。

    一切顺利,打开 Visual Studio,构建并运行项目。

【讨论】:

【参考方案2】:

根据 Visual Studio 开发人员社区(通过转到“帮助”菜单并选择“反馈”找到),将 Visual Studio 更新到 16.5.5 版将解决该问题。仅供参考:他们在 2020 年 2 月发布了这个

我可以确认它有效(我使用的是 VS 16.4.6)

【讨论】:

【参考方案3】:

这些解决方案都不适合我。通过关闭visual studio删除.vs”文件夹,我能够让测试资源管理器正常工作。然后重新打开解决方案并让它重建它。

【讨论】:

【参考方案4】:
    关闭 Visual Studio。 删除*.testlog 文件: 解决方案文件夹\.vs\解决方案名称\v16\TestStore\编号

【讨论】:

经过大量反馈,我决定将其更改为接受答案。我仍然使用 Alex B. 的答案,只要您的 git 存储库中没有可能无法跟踪的关键文件,它就可以正常工作。 .vs 是一个隐藏目录。确保将文件资源管理器设置为查看隐藏目录 99% 的 Visual Studio 错误都可以通过删除 .vs 文件夹或 windows temp / roaming / local 文件夹中的魔法隐藏文件来解决。 :C 我在内部询问过这个问题。显然问题已在 16.5 中修复。 我没有让它与这个答案一起工作。我不得不使用 Alex B 的答案。【参考方案5】:

我现在面临同样的问题。清理工作有所帮助。由于我上次在 VS 中遇到了清理问题(一些 DB 锁阻止了真正的清理),所以我的工作清理是这样的:

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

可能会有帮助。

【讨论】:

成功了,非常感谢。看起来像你的第一篇文章,如果是这样的话,我必须说它曾经是一个入口:-) 当我使用 XUnit 测试运行程序在测试 DLL 之间移动测试时,我在测试资源管理器结果中看到了几次“未知项目”。我发现删除与我的解决方案文件位于同一文件夹中的 .vs 文件夹就足够了。 此答案将删除任何不在源代码管理中的内容,因此如果您不签入诸如 launchSettings.json 之类的内容,您可能需要改用 pwretmo 的答案。 @pwretmo answer 是针对具体问题的更安全、更直接的答案。 社区已经发声了。我已经改变了接受的答案,以最好的方式帮助他人。这个答案对我来说仍然很好,但我明白它可能会带来某些风险。不过,我仍然非常感谢您的帮助:-)。

以上是关于测试资源管理器 (VS) 显示“<未知项目>”的主要内容,如果未能解决你的问题,请参考以下文章

Xamarin Android Nunit测试在测试资源管理器中可被发现,但在运行测试时未被发现。 (VS2017)

切换到 Windows SDK 资源编译器后,VS_VERSION_INFO 未显示在 Windows 资源管理器中

可以在 VS 包管理器 UI 中显示预发布的 NuGet 包吗?

解决方案资源管理器 VS 2015 中的文件重命名

VS 数据库项目中缺少“显示所有文件”选项

像vs平台的资源管理器和属性窗口是啥窗口怎么才能做到这种效果呢??