【问题标题】:Test Explorer (VS) shows '<Unknown project>'测试资源管理器 (VS) 显示“<未知项目>”
【发布时间】: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 一词,但没有返回任何结果。

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

【问题讨论】:

标签: c# visual-studio nunit


【解决方案1】:

步骤如下

  1. 关闭 Visual Studio

  2. 进入项目文件夹

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

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

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      【解决方案3】:

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

      【讨论】:

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

        【讨论】:

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

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

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

        可能会有帮助。

        【讨论】:

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