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

时间:2012-03-03 14:55:47

标签: .net unit-testing visual-studio-2012 visual-studio-2013 mstest

我安装了新的Visual Studio 2012 Ultimate。

我用我的解决方案创建了一个测试项目,它包含一些默认的单元测试。但是,右键单击新方法不再显示“创建单元测试”上下文菜单。

请参阅Visual Studio 2010 Ultimate: enter image description here

和Visual Studio 2012 Ultimate: enter image description here

知道为什么会这样吗?

更新

Visual Studio 2012和2013的解决方案:

Microsoft已承认here并提供了official work around patch来解决此问题。下载,安装和享受!

9 个答案:

答案 0 :(得分:86)

此功能已从VS中删除。

http://blogs.msdn.com/b/visualstudioalm/archive/2012/03/08/what-s-new-in-visual-studio-11-beta-unit-testing.aspx

  

生成单元测试向导 - 在VS2010中,您可以右键单击a   代码中的方法,我们会在您的测试中生成单元测试   项目。该向导与MS-Test紧密结合并依赖   关于像私人访问者这样的功能来做它的工作,所以它被削减了。我们   正在探索替代方案,但没有任何好的解决方案   爱好。

编辑有一种解决方法:http://blogs.msdn.com/b/malaysia/archive/2013/02/20/right-click-create-unit-tests.aspx

答案 1 :(得分:33)

" Unit Test Generator"可以使用扩展程序

Unit Test Generator Extension

直接从Visual Studio 2012/2013 IDE添加:

  1. 菜单:工具 - >扩展和更新
  2. 点击:在线 - > Visual Studio Gallery
  3. 搜索:"单元测试生成器"
  4. MSDN Video Demonstration

    注意:VS 2012/2013中的MSTest仍然很糟糕

答案 2 :(得分:27)

菜单项仍然存在,但由于未知原因,它在代码编辑器中不可见。 但您可以使用visual studio命令运行单元测试向导。你需要的命令是

EditorContextMenus.CodeWindow.CreateUnitTests

打开命令窗口并在那里键入命令。或者键入别名命令,如下所示

alias ut EditorContextMenus.CodeWindow.CreateUnitTests

并将别名更快地分配给run命令。

运行向导的另一种方法是键盘快捷键。在Visual Studio中打开

Tools -> Options -> Environment -> Keyboard

在“显示命令包含”文本框中键入“createunit”以过滤掉CreateUnitTests命令,选择它。在“使用新快捷方式”组合框中选择“文本编辑器”,然后在“按快捷键”文本字段中按所需的快捷键(例如,按Ctrl + T,Ctrl + C)。最后,按Assign按钮。享受!

答案 3 :(得分:19)

以下是如何再次启用它:

方法1 - 命令窗口

如果你发现足够困难,你会发现调用创建单元测试的命令实际上是:

EditorContextMenus.CodeWindow.CreateUnitTests

您实际上可以在命令窗口中键入它以调用“创建单元测试向导”。如果您发现它太冗长,您实际上可以为它创建一个别名。

alias ut EditorContextMenus.CodeWindow.CreateUnitTests

然后输入ut以启动向导。

方法2 - 键盘快捷键

下一种方法是转到工具 - >选项 - >环境 - >键盘并设置您偏好的快捷键。

方法3 - 重新启用创建单元测试...上下文菜单。

要重新启用“创建单元测试...”菜单,请转到“工具” - >“自定义...”以启动“自定义”对话框。在Customize对话框中,转到Commands选项卡,选择Context菜单单选按钮,然后选择Editor Context Menus |代码窗口。

您将意识到菜单项实际上在上下文菜单中可用。  VS开发人员非常友好地为我们留下了它。

单击Create Unit Tests ...菜单项,然后单击Move Down直到它在“Run tests ..”命令的上面/下面。 然后单击“关闭”。

重新启动Visual Studio 2012,就是这样!上下文菜单将可用!

您可能会发现使用上述任何方法都可能无效。即命令窗口将告诉您该命令不可用,键盘快捷键不会触发或上下文菜单可用但禁用。

要允许所有这些工作,您首先需要在解决方案中安装单元测试项目。创建单元测试项目后,您需要手动将单元测试项添加到项目中,即使项目单独展开也是如此。完成此操作后,所有内容都将像在Visual Studio 2010中一样运行。您可以安全地删除这些UnitTest1.cs文件。

来源(有图片,我没有足够的Rep Points来放置它们):
http://serena-yeoh.blogspot.fr/2013/02/visual-studio-2012-create-unit-test.html

(ps:阅读警告!!!!)

答案 4 :(得分:9)

answerintrueder对许多用户不起作用。 当我在命令窗口中输入UT时,我有时会遇到以下内容

>UT
Command "EditorContextMenus.CodeWindow.CreateUnitTests" is not available.

但有时它适用于同一解决方案,因此行为似乎是间歇性的。

Dawa Law的帖子“Create Unit Tests… Function Not Available Or Disabled”的帮助下,我发现在每个Visual Studio会话期间,您需要手动创建一个测试类,然后才能使用向导。

如果解决方案中有现有的单元测试项目,

  

在Solution Explorer中,右键单击Unit Test项目 - >添加 - >单元   测试...这将创建一个新的单元测试类并触发Visual Studio   现有的单元测试类可用,从而启用Create   单元测试向导。注意:您可以删除创建的单元测试类   文件(UnitTestX.cs),因为它用于触发函数。

如果解决方案中没有现有的单元测试项目,则需要在添加手动类之前创建它:

  

转到文件 - >添加 - >新项目...在“添加新项目”窗口中,   选择已安装 - > Visual C# - >测试 - >单元测试项目。给它一个   有意义的名称,然后单击确定

Dawa Law的帖子“Create Unit Tests…” Function Not Available Or Disabled有快照来说明每一步。

请注意,VS 2012创建单元测试向导仅支持公共方法的生成测试,在以前的版本中也支持私有方法。

答案 5 :(得分:6)

测试版中删除了“创建单元测试”菜单。我不确定是否有计划将它带回来。如果它确实存在问题,请在Visual Studio UserVoice站点上请求它:http://visualstudio.uservoice.com/

答案 6 :(得分:4)

您可以通过从here导入以下vssettings来重新获得右键点击“创建单元测试...”。

答案 7 :(得分:2)

http://blogs.msdn.com/b/malaysia/archive/2013/02/20/right-click-create-unit-tests.aspx

方法3 - 重新启用创建单元测试...上下文菜单。

这是迄今为止最好的方法。要重新启用“创建单元测试...”菜单,请转到“工具” - >“自定义...”以启动“自定义”对话框。在Customize对话框中,转到Commands选项卡,选择Context菜单单选按钮,然后选择Editor Context Menus |代码窗口。

答案 8 :(得分:0)

“您可能会发现使用上述任何一种方法均行不通。例如,“命令窗口”将告诉您该命令不可用,键盘快捷键将不会触发,或者上下文菜单将可用但被禁用。

要使所有这些方法都起作用,您首先需要在解决方案中包含一个单元测试项目。创建单元测试项目后,即使项目是单独展开的,您也需要手动将“单元测试”项添加到项目中。完成此操作后,一切将像在Visual Studio 2010中一样恢复正常。您可以安全地删除那些UnitTest1.cs文件。”

(Michael Freidgeim)