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

30

我知道这个问题之前在SO上已经被问过,而且似乎这个功能在某个时候被从VS中删除了,但是我现在正在查看微软的教程,它说在VS 2017中应该有一个创建单元测试函数的功能。

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

编辑:我正在使用Visual Studio 2017 Community Edition。


我遇到了同样的问题。 我在2015年使用它,但在2017年找不到它了。 [https://www.visualstudio.com/en-us/docs/test/developer-testing/getting-started/create-unit-tests-menu] - JonathanPeel
1
我认为这篇帖子回答了这个问题 https://dev59.com/BFgQ5IYBdhLWcg3wSyMO - user7269701
可能是因为我正在使用.NET Core吗?我会尝试使用普通项目。 - lfk
1
@MichaelFreidgeim,我不认为这实际上是重复的问题;另一个问题是关于完整的.NET项目,而这个问题特别涉及.NET Core。预期行为结果(不太有帮助)取决于.NET版本。 - tomRedox
1个回答

44
以下答案仅适用于.NET Core/Standard。如果您在完整的.NET Framework项目中缺少“创建单元测试”选项,请在此处查看
当前状态:.NET Core现在可用!
我现在在Visual Studio Professional 2019版本16.3.0预览版3.0上运行Core 3解决方案中的“创建单元测试”上下文菜单。不确定它何时重新出现,因为我已经定期更新每个新的预览版本。
历史记录
有关更多历史和详细信息,请参阅下面的更新。
原始答案2017年6月
来自Microsoft's Jayarani Garg的GitHub条目证实,它仅适用于针对完整.NET框架的项目:

Jayarani Garg [MSFT] · Feb 27 2017 at 06:09 AM Hi,

Thank you for your feedback. "Create Unit Test" is currently not supported for .Net Core projects.

根据同一Visual Studio Developer Community页面上的这个Visual Studio Team评论,这是设计上的而不是一个错误:

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

感谢您的反馈!Visual Studio团队已经确定这个问题不是一个bug。然而,我们会考虑这个反馈并创建https://github.com/Microsoft/vstest/issues/592来跟踪它。请随意投票支持此问题。

上面提到的 Microsoft VS 测试存储库 (创建单元测试上下文菜单丢失 (.net core 项目)) 的 github 问题有些令人困惑。它要求为 .NET Core 项目添加此功能,但随后 Microsoft 员工谈论了解决问题的方法。我相信员工指的是旧 bug,即上下文菜单选项也无法为完整的 .NET 框架项目工作(如在此问题中讨论),该线程中也提到了这一点。就我所看到的,该线程并未表示他们已为 .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月更新

微软已经注意到了功能请求的赞数,并计划在15.8版本中为.NET Core项目引入上下文菜单选项:

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

将此功能添加到.NET Core项目需要对新项目系统进行一些重大更改,该系统驱动.NET Core项目。这项工作正在项目系统GitHub仓库中跟踪处理,具体问题请参见https://github.com/dotnet/project-system/issues/3425。很遗憾,这个问题预计将在15.8发布时间解决,因此,创建.NET Core项目的单元测试功能将不会在即将推出的15.7版本中提供。我们充分理解这是一个关键功能,并将尽最大努力尽早提供。

2018年7月更新

使用"创建单元测试命令"生成单元测试方法桩的页面已经更新了,以反映它不适用于.NET Core。

2018年8月更新

@gartenriese在下面指出,GitHub问题3425被微软移到了2018年8月2日发布的15.9里程碑中追踪此工作。

2019年1月更新

该单元测试功能似乎依赖于或受到开发的另一部分的阻碍。现在,该部分计划在VS 16.1(即VS 2019)中发布,并且优先级比EF Core 3.0更低(这是VS 16的主要功能之一),根据Microsoft的David Kean在GitHub上的帖子所述

2019年5月更新

针对.NET Core和.NET Standard项目,暂不支持“创建单元测试”上下文菜单选项。

自2018年7月份以来,文档已经更新以反映此问题。

创建单元测试菜单命令:

  • 适用于Visual Studio 2015及以后版本的社区版、专业版和企业版。
  • 仅支持针对.NET Framework的C#代码。
  • 可扩展,支持在MSTest、MSTest V2、NUnit、xUnit格式下发出测试。
  • 尚未在.NET Core项目中提供。

这个功能原计划在Visual Studio 15.9版本中发布,但现在似乎已经被推迟到16.1版本(链接2)

我在Visual Studio Professional 2019 RC(版本16.0.0)的.NET Core 2.2项目中进行了测试,并确认它仍然无法工作-与上面的答案一样(链接1)

我刚刚测试了Visual Studio Professional 2019预览版(版本16.1.0预览2.0),也没有找到它,所以看起来微软还没有解决这个问题。


1
非常感谢您抽出时间进行更新。 到目前为止,15.8似乎将是一个重大的版本发布。 - JonathanPeel
2
已经推迟到15.9。 - gartenriese
1
@tomRedox:在问题中,它说(相对于末尾)“Pilchie 修改了里程碑:15.8、15.9 在 8 月 2 日”。我不认为我可以直接链接到那个。 - gartenriese
1
现在是2018年11月,我们仍然使用15.8.9版本的.NET Core/Standard项目,并且没有进行单元测试的创建。 - John Alexiou
1
@tomRedox 这是基于GitHub底部问题的自动通知:“2天前,drewnoakes 修改了里程碑:16.3、16.4”。相关问题(#3425)现在在 https://github.com/dotnet/project-system/milestone/29 中。 - jboeke
显示剩余3条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接