VS 2017 中的创建单元测试在哪里?

Posted

技术标签:

【中文标题】VS 2017 中的创建单元测试在哪里?【英文标题】:Where is Create Unit Test in VS 2017? 【发布时间】:2017-08-10 03:43:03 【问题描述】:

我知道这个问题之前已经在 SO 上提出过,而且似乎这个功能在某个时候从 VS 中删除了。但我现在正在查看 Microsoft tutorial,上面说 VS 2017 中应该有一个创建单元测试功能。

我正在尝试测试 ASP.NET Core MVC 控制器。我已按照创建测试项目的步骤进行操作。但是当我右键单击命名空间/类/方法时,我仍然看不到任何此类选项。

编辑:我正在使用 Visual Studio 2017 社区版

【问题讨论】:

我也有同样的问题。我在 2015 年使用它,但在 2017 年我找不到它。[visualstudio.com/en-us/docs/test/developer-testing/… 我认为这篇文章回答了***.com/questions/42974497/…的问题 可能是因为我使用的是 .NET Core?我会尝试一个正常的项目 Create Unit Tests context menu option missing in Visual Studio 2017?的可能重复 @MichaelFreidgeim 我不认为它实际上不是重复的;另一个问题是指完整的 .net 项目,而这与 .net 核心相关。根据 .net 版本,预期的行为(无益的)会有所不同。 【参考方案1】:

以下答案仅与 .NET Core/Standard 相关。如果您缺少完整 .NET Framework 项目的“创建单元测试”选项see here。

当前状态:它现在适用于 .NET Core!

我现在在 Visual Studio Professional 2019 版本 16.3.0 预览版 3.0 上运行的 Core 3 解决方案中具有创建单元测试上下文菜单。不确定它何时重新出现,因为我一直在定期更新每个新的预览版本。

历史

有关更多历史记录和详细信息,请参阅下面的更新。

2017 年 6 月的原始答案

来自Microsoft's Jayarani Garg 的这个 GitHub 条目确认它仅适用于面向完整 .NET 框架的项目:

Jayarani Garg [MSFT] · 2017 年 2 月 27 日上午 06:09 嗨,

感谢您的反馈。 “创建单元测试”目前没有 支持 .Net Core 项目。

这是设计使然,而不是根据同一 Visual Studio 开发人员社区页面上的 this Visual Studio Team comment 的错误:

Visual Studio 团队 ♦♦· 2017 年 3 月 10 日下午 1:06

感谢您的反馈! Visual Studio 团队已确定此问题 不是错误。但是,我们会考虑这些反馈并创建 https://github.com/Microsoft/vstest/issues/592 跟踪这个。请 随时为这个问题投票。

上面提到的 Microsoft VS Test repo Create Unit Test Context Menu Missing (.net core projects) 上的 github 问题有点令人困惑。它也要求为 .NET Core 项目添加此功能,但随后一位 Microsoft 员工谈论解决问题。我相信员工指的是旧错误,其中上下文菜单选项不适用于完整的 .NET 框架项目as discussed in this question,该线程中也提到了这一点。据我所知,该线程并不是说他们已经为 .NET Core 项目添加了菜单选项。

我还刚刚检查了 Visual Studio Professional 2017 版本 15.2 (26430.6) 的副本,并且我确实为面向完整 .NET 框架的项目提供了“创建单元测试”选项(这个目标是 .NET Framework 4.5.1):

但对于针对 .NETCoreApp 1.1 的项目,我没有

2018 年 6 月更新

Microsoft 已注意到对 feature request 的支持,并计划在 15.8 版本中为 .NET Core 项目引入上下文菜单选项:

Manish Jayaswal [MSFT] 回复 Daniel Tibi · 2018 年 4 月 6 日晚上 10:30

将此功能添加到 .NET Core 项目需要一些 新项目系统的重大变化——驱动 .NET 核心项目。这项工作正在项目系统 GitHub 中进行跟踪 本期回购 (https://github.com/dotnet/project-system/issues/3425)。这个问题是 不幸的是,预计将在 15.8 发布时间范围内解决, 不会为 .NET Core 项目创建单元测试功能 在即将发布的 15.7 版本中可用。我们完全理解这 是一项关键功能,我们会尽最大努力尽早提供 尽可能。

2018 年 7 月更新

Create unit test method stubs with the Create Unit Tests command 页面有 been updated now 以反映这不适用于 .NET Core。

2018 年 8 月更新

正如下面 @gartenriese 所指出的,微软描述为跟踪这项工作的 GitHub 问题 3425 已移至 15.9 milestone on 02 August 2018。

2019 年 1 月更新

单元测试功能似乎依赖于another part of the development 或被another part of the development 阻止。该部分现在计划用于 VS 16.1,即 VS 2019,并且优先级列表也比 EF Core 3.0(这是 VS 16 的主要特性之一)according to this GitHub post by Microsoft's David Kean.

2019 年 5 月更新

面向 .NET Core 和 .NET Standard 的项目(尚)不支持“创建单元测试”上下文菜单选项。

文档是updated to reflect this in July 2018,现在声明:

创建单元测试菜单命令:

在 Visual Studio 2015 及更高版本的社区版、专业版和企业版中可用。 仅支持以 .NET Framework 为目标的 C# 代码。 可扩展,支持以 MSTest、MSTest V2、NUnit、xUnit 格式发出测试。 在 .NET Core 项目中尚不可用。

此功能是 Visual Studio 的 slated for release in Version 15.9,但现在是 appears to have been pushed back to Version 16.1。

我已经在 Visual Studio Professional 2019 RC(版本 16.0.0)的 .NET Core 2.2 项目中对此进行了测试,我可以确认它仍然无法正常工作 - 正如上述答案所预期的那样。

我还刚刚测试了 Visual Studio Professional 2019 预览版(版本 16.1.0 预览版 2.0),它也不可用,所以看起来微软还没有做到这一点。

【讨论】:

非常感谢您花时间更新。到目前为止,15.8 似乎将是一个主要版本。 已被推回15.9。 @tomRedox:在问题中它说(相对于最后)“Pilchie 修改了里程碑:8 月 2 日的 15.8、15.9”。我不认为我可以直接链接到那个。 现在是 2018 年 11 月,我们仍在 15.8.9 上,没有对 .NET Core/Standard 项目进行单元测试(创建)。 @tomRedox 它基于问题底部的自动 GitHub 通知:“drewnoakes 修改了里程碑:16.3, 16.4 2 天前”。相关问题(#3425)现在在github.com/dotnet/project-system/milestone/29

以上是关于VS 2017 中的创建单元测试在哪里?的主要内容,如果未能解决你的问题,请参考以下文章

“创建单元测试”选项在哪里?

基于C#的单元测试(VS2015)

第二次作业—单元测试的简单实践

vs方法上右键没有单元测试

第三周作业VS安装及单元测试练习

VS2015 单元测试