当前位置: 首页 > 知识库问答 >
问题:

为什么Visual Studio 2019不会运行我的单元测试?

贺轶
2023-03-14

我在VS2019中看到一些非常奇怪的NUnit测试行为,而同样的解决方案在VS2017中运行良好。我的解决方案中有几个NUnit测试项目。

在安装了NUnit Runner扩展的VS2017中,我可以在测试资源管理器窗口中看到我的所有测试,并且“run all”按钮将工作并运行所有测试。我的组织中的一些开发人员使用Resharper而不是NUnit扩展,这也可以工作。

我已经停止使用Resharper,因为随着VS引入更多功能,Resharper使其变得如此缓慢,以至于VS无法使用。

在VS2019中,测试资源管理器窗口将显示我所有的单元测试(即使没有安装NUnit扩展)。如果我单击“运行所有”,它将不会运行任何测试,输出窗口将显示发现0个测试。同事们说Resharper将毫无问题地运行所有测试。如果我右键单击单个测试项目并只运行这些测试,一些项目将运行测试,但不是全部。

对于某些项目,我尝试html" target="_blank">安装NUnit3TestAdapater nuget包,如果仅选择了该项目,这将使VS2019运行该项目的测试。这并不适用于所有项目,并且仍然不适用于“全部运行”。

有谁知道可能导致这种情况的原因以及什么可以解决它?我已为所有这些项目更新到最新版本的 NUnit (3.12) 和最新的测试适配器 (3.16)。

大约一年来,这真的很痛苦,因为我需要同时安装VS2017和2019,我需要培训新的开发人员如何解决这个奇怪的问题。

共有3个答案

徐高懿
2023-03-14

我遇到了同样的问题,通过检查日志记录解决了这个问题。

在工具中-

在我的案例中,这个问题与丢失的版本有关。NET Core 3.1桌面运行时“你可以在https://dot NET . Microsoft . com/download/dot NET/thank-You/Runtime-Desktop-3 . 1 . 14-windows-x86-installer下载最新版本

华安民
2023-03-14

解决方案是两件事的结合。

>

  • 在顶部菜单上,导航到测试

    将 NuGet 包用于测试适配器,而不是使用 VSIX 扩展。似乎对于本文,所需的只是解决方案中至少有一个项目引用了此内容。如果至少有一个项目引用它,则可以运行所有测试项目。(这对我来说是有道理的,因为它与可视化工作室以外的构建工具更兼容。

    为重大更改而欢呼!

  • 东郭昌胤
    2023-03-14

    我偶然发现了同样的问题。在我看来,我必须在每个版本中安装越来越多的东西。就我而言(Visual Studio 2019社区版,16.6.1版),我现在还必须通过NuGet获取Microsoft.NET.Test.Sdk。

    所以最后,我在我的测试项目中安装了三个包:

      < li>NUnit (3.12.0) < Li > nunit 3测试适配器(3.17.0) < li >微软。NET.Test.Sdk (16.7.1)

    然而,打开或关闭自动化测试发现并没有改变我的任何事情。

    希望这对任何人都有帮助。

     类似资料:
    • 问题内容: 发生了最奇怪的事情,我的测试运行正常,但现在不再,我完全没有更改代码,这里是一个例外: 问题答案: 我看到您正在使用Eclipse,但您是否还在使用其他外部构建/测试工具,例如Ant或Maven?有时,在同时使用其他外部工具时,Eclipse可能会不同步。 如果使用外部工具,请执行清理生成的工件所需的所有操作(例如mvn clean)。然后刷新Eclipse项目并按照前面的建议进行干净

    • 这是我的整个测试课程: 有3个单元测试,它们在单独运行时都通过了,但当我运行整个测试类时,我的第2个和第3个测试失败,错误如下: 我已经想尽一切办法来解决这个问题: 我将测试实例化下的类移动到@Before函数中 我尝试创建@After函数并调用Mockito。重置我的模拟 我应该提到的是,我正在使用nhaarman。mockitokotlin2库和argumentCaptor。 关于为什么这些测

    • 几周前,我正在进行单元测试,它们按照预期进行构建和运行。 我休假了一周,今天早上启动了我的机器,没有对单元测试项目进行任何代码更改,测试就不再运行了。 当我说“测试不再运行”时,我并不是说它们失败了;他们实际上不会逃跑。 我试过运行或调试一个特定的测试,我试过运行或调试所有的测试,我试过从每个测试方法名称旁边的Resharper图标,我试过从test菜单项,我试过从“Unit test Sessi

    • 我们刚刚从Visual Studio2008“升级”到Visual Studio2012。我们更新了我们的单元测试,现在它们在单独运行时通过,但是当我尝试运行全部时,我得到了以下错误: 还有人遇到过类似的问题吗?如果是的话,你是怎么解决的? 在MSDN上也问过同样的问题,但答案是“点击崩溃转储的链接”。这个答案对我没有帮助,因为我没有看到到崩溃转储的任何链接,并且我无法生成崩溃转储。 关于Stac

    • 我如何运行单元测试的Spring引导应用程序,而建设和部署使用命令。 我的期望是在运行应用程序之前执行所有单元测试,但我不想在运行应用程序之前再执行另一个maven命令,如。 我的问题是:我制作了一个简单的spring启动应用程序,在从intellij或命令行运行应用程序时,我可以找到一种运行单元测试的方法。首先,我认为可能我有错误的配置或者错误的测试类名称或者错误的项目结构。所以我从intell

    • 从Spring 3.1开始,由于@Enable*注释,我们可以更容易地使用JavaConfig。 所以我做了一个WebConfig来设置WebMvc配置,并尝试对其进行测试。但是,如果我使用WebConfig扩展WebMVCConfigureAdapter或WebMvcConfigurationSupport,单元测试将失败,因为缺少ServletContext。代码和消息如下所示。 网络配置。J