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

时间:2017-03-18 16:26:25

标签: c# visual-studio unit-testing .net-core visual-studio-2017

据我所知,之前已经问过这个问题,看来这个功能在某些时候已经从VS中删除了。但我现在正在寻找一个微软tutorial,并且说VS 2017中应该有一个创建单元测试功能。

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

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

1 个答案:

答案 0 :(得分:38)

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

当前状态:.NET Core即将推出

对于面向.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),但它也没有,所以看起来微软还没有这样做。

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

历史

2017年6月的原始答案

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

  

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

     

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

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

  

Visual Studio Team♦♦·2017年3月10日下午01:06

     

感谢您的反馈! Visual Studio团队已经确定了这个问题   不是一个bug。但是,我们会考虑这些反馈并创建   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):

Create Unit Test menu item present

但我拥有针对.NETCoreApp 1.1的项目:

Create Unit Test menu item missing

2018年6月更新

Microsoft已注意到feature request的upvotes,并计划在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或被according to this GitHub post by Microsoft's David Kean阻止。该部分现在定于VS 16.1,即VS 2019,并且也比EF Core 3.0(这是VS 16的主要功能之一){{3}}更低于优先级列表。