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

Posted

技术标签:

【中文标题】“创建单元测试”选项在哪里?【英文标题】:Where is the "Create Unit Tests" selection? 【发布时间】:2012-03-21 18:26:28 【问题描述】:

我已经安装了新的 Visual Studio 2012 Ultimate。

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

查看 Visual Studio 2010 Ultimate:

还有 Visual Studio 2012 Ultimate:

知道为什么会这样吗?

更新:

Visual Studio 2012 和 2013 解决方案:

Microsoft 已确认它here 并提供official work around patch 来修复它。下载、安装和享受!

【问题讨论】:

这两个是同一个项目还是 mvc 构建? 这些是从头开始构建的新 MVC 4 项目。 有趣。当您点击“运行单元测试”时会发生什么? 我会将此报告为错误。 VS 11 确实在从通过 MSTest 提供测试基础架构到提供可插拔测试框架的方向上发生了很大变化。这可能是该决定的后果。无论哪种方式,我都会提交错误 【参考方案1】:

此功能是从 VS 中删除的。

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

生成单元测试向导 - 在 VS2010 中,您可以右键单击 方法,我们将在您的测试中生成一个单元测试 项目。该向导与 MS-Test 紧密耦合并依赖于 像 Private Accessors 这样的功能来完成它的工作,所以它被削减了。我们 正在这里探索替代方案,但没有任何好的解决方案 还没有。

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

【讨论】:

希望他们提出一个可行的解决方案。否则似乎是倒退了一大步 看起来该解决方法中的第三个选项在 VS2013 中不再可用。 该功能在 VS2015 blogs.msdn.com/b/visualstudioalm/archive/2015/03/06/… 中回归,这要感谢在 visualstudio.uservoice.com/forums/121579-visual-studio/… 中投票支持它的人。 @furier:也许你投了票? 我的意思是,它在 5 分钟前就在那里……只是现在不在那里了——它为什么来来去去?【参考方案2】:

“Unit Test Generator”扩展可用

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

    菜单:工具 -> 扩展和更新 点击:在线 -> Visual Studio Gallery 搜索:“单元测试生成器”

MSDN Video Demonstration

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

【讨论】:

【参考方案3】:

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

EditorContextMenus.CodeWindow.CreateUnitTests

打开命令窗口并在其中键入命令。或者按如下方式输入别名命令

alias ut EditorContextMenus.CodeWindow.CreateUnitTests

并分配别名以更快地运行命令。

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

Tools -> Options -> Environment -> Keyboard

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

【讨论】:

我无法让它工作。我将光标放在方法上。点击我添加的短代码,然后收到一条消息:命令“EditorContextMenus.CodeWindow.CreateUnitTests”不可用。 我已经在安装了更新的 Visual Studio 2012 Ultimate 上进行了尝试,这可能很重要。 我在尝试此操作时遇到与 LockTar 相同的错误。所以使用单元测试最简单的方法就是制作一个新的单元测试项目。 我无法解释你为什么会出错,但我已经获取了证明视频,你可以在grabilla.com/02c0a-6f42a829-1535-4016-a7ff-cbbda665bee5.html观看它 如果向导不可用,请参阅博客dl.my/2013/create-unit-tests-function-not-available-or-disabled或我在***.com/a/15184716/52277下面的回答【参考方案4】:

这里是如何再次启用它:

方法 1 - 命令窗口

如果你足够努力,你会发现调用 Create Unit Tests... 的命令实际上是:

EditorContextMenus.CodeWindow.CreateUnitTests

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

别名 ut EditorContextMenus.CodeWindow.CreateUnitTests

然后只需键入 ut 即可启动向导。

方法 2 - 键盘快捷键

接下来的方法是去工具->选项->环境->键盘,设置一个你喜欢的快捷键。

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

要重新启用“创建单元测试...”菜单,请转到“工具”->“自定义...”以启动“自定义”对话框。在自定义对话框中,转到命令选项卡,选择上下文菜单单选按钮并选择编辑器上下文菜单 |代码窗口。

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

单击“创建单元测试...”菜单项,然后单击“下移”,直到它在“运行测试...”命令上/下。 然后点击关闭。

重启 Visual Studio 2012 就可以了!上下文菜单将可用!

您可能会发现使用上述任何一种方法都可能不起作用。即命令窗口会告诉你命令不可用,键盘快捷键不会触发,或者上下文菜单可用但被禁用。

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

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

(ps:阅读注意事项!!!)

【讨论】:

请注意,VS 2012 创建单元测试向导仅支持公共方法的生成测试,而在以前的版本中也支持私有方法。 这对我帮助很大,非常感谢。我的补救措施中缺少添加虚拟单元测试步骤。 手动创建一个重要的单元测试。傻不知道为什么菜单项在那之前被禁用。 在这里也找到了同样的东西..dawalaw.com/2013/enable-create-unit-tests-on-visual-studio-2012【参考方案5】:

intrueder 的 answer 不适用于许多用户。 当我在命令窗口中输入 UT 时,有时会出现以下情况

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

但有时它适用于相同的解决方案,因此行为似乎是断断续续的。

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

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

在解决方案资源管理器中,右键单击单元测试项目 -> 添加 -> 单元 测试...这将创建一个新的单元测试类并触发 Visual Studio 现有的单元测试类可用,因此启用 Create 单元测试向导。注意:您可以删除创建的单元测试类 文件(UnitTestX.cs),因为它用于触发函数。

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

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

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

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

.

【讨论】:

“您需要在向导可用之前手动创建一个测试类”——这最终对我有用 谢谢我用了Dawa Law的博客,终于搞定了:)【参考方案6】:

“创建单元测试”菜单已在 Beta 版中移除。我不确定是否有计划将其带回。如果您确实有问题,请在 Visual Studio UserVoice 网站上提出请求:http://visualstudio.uservoice.com/

【讨论】:

直接链接:visualstudio.uservoice.com/forums/121579-visual-studio/… 和 visualstudio.uservoice.com/forums/121579-visual-studio/…【参考方案7】:

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

【讨论】:

【参考方案8】:

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

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

这是迄今为止最好的方法。要重新启用 Create Unit Tests... 菜单,请转到 Tools->Customize... 以启动 Customize 对话框。在自定义对话框中,转到命令选项卡,选择上下文菜单单选按钮并选择编辑器上下文菜单 |代码窗口。

【讨论】:

...然后呢?它已经在那里列出,但是当我右键单击时它没有显示。【参考方案9】:

"您可能会发现使用上述任何一种方法都可能不起作用。即命令窗口会告诉您该命令不可用、键盘快捷键不会触发或上下文菜单可用但禁用。

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

(迈克尔·弗赖德海姆)

【讨论】:

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

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

如何修复单元测试中的错误? |断言错误

在Android Studio中可以进行单元测试

为归档函数 fs 创建单元测试

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

为归档函数fs创建单元测试