154

I have installed the new Visual Studio 2012 Ultimate.

I have created a Test Project with my solution and it contains some default unit tests. However right clicking on new Methods doesn't show the "Create Unit Tests" context menu any longer.

See Visual Studio 2010 Ultimate: enter image description here

And Visual Studio 2012 Ultimate: enter image description here

Any idea why that could be?

UPDATE:

Solution for Visual Studio 2012 and 2013:

Microsoft has acknowledged it here and offers an official work around patch to fix it. Download, install and Enjoy!

Houman
  • 64,245
  • 87
  • 278
  • 460

9 Answers9

88

This feature was cut from VS.

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

Generate Unit Test Wizard – In VS2010 you could right click on a method in your code and we would generate a unit test into your test project. This wizard was very tightly coupled to MS-Test and depended on features like Private Accessors to do its work, so it was cut. We are exploring alternatives here, but don’t have any good solutions yet.

EDIT There is a work around: http://blogs.msdn.com/b/malaysia/archive/2013/02/20/right-click-create-unit-tests.aspx

Daniel A. White
  • 187,200
  • 47
  • 362
  • 445
  • 17
    Hope they come up with a working solution. Seems like a large step backwards otherwise – Andrew Harry Jun 14 '12 at 04:25
  • 3
    Looks like the third option in that workaround isn't available anymore in VS2013. – Sander May 19 '14 at 12:51
  • The functionality is coming back in VS2015 http://blogs.msdn.com/b/visualstudioalm/archive/2015/03/06/creating-unit-test-stubs.aspx thanks to the ones that voted for it in https://visualstudio.uservoice.com/forums/121579-visual-studio/suggestions/2748862-add-create-unit-tests-menu-option-back . @furier : Maybe you voted for it? – LosManos Mar 11 '15 at 11:45
  • I mean, it was there 5 minutes ago... it's just not there now -- why does it come and go? – BrainSlugs83 Feb 27 '17 at 01:07
33

The "Unit Test Generator" extension is available

Unit Test Generator Extension

To add directly from Visual Studio 2012/2013 IDE:

  1. Menu: Tools -> Extensions and Updates
  2. Click: Online -> Visual Studio Gallery
  3. Search for: "Unit Test Generator"

MSDN Video Demonstration

Note: MSTest in VS 2012/2013 still sucks

JohnB
  • 18,046
  • 16
  • 98
  • 110
28

The menu item is still in place, but for unknown reasons it's invisible in the code editor. But you can use visual studio commands to run unit test wizard. The command you need is

EditorContextMenus.CodeWindow.CreateUnitTests

Open Command Window and type the command there. Or type an alias command as follows

alias ut EditorContextMenus.CodeWindow.CreateUnitTests

and assign the alias to run command faster.

Another way to run the wizard is keyboard shortcut. In Visual Studio open

Tools -> Options -> Environment -> Keyboard

Type "createunit" in "Show commands containing" text box to filter out CreateUnitTests command, select it. Choose "Text Editor" in "Use new shortcut in" combo, and press shortcut you want in "Press shortcut keys" text field (e.g., Ctrl+T, Ctrl+C). Finally, press Assign button. Enjoy!

intrueder
  • 445
  • 5
  • 11
  • 7
    I can't get this to work. I set my cursor on the method. Hit the shortcode I added but then get a message: Command "EditorContextMenus.CodeWindow.CreateUnitTests" is not available. – LockTar Dec 04 '12 at 12:31
  • I've tried on Visual Studio 2012 Ultimate with update installed, may be it matters. – intrueder Dec 04 '12 at 14:55
  • 1
    I get the same error as LockTar when i try this. So the easyest way to use unit test is to make a new unit test projekt. – saadan Dec 07 '12 at 13:50
  • I can't explain why you got an error, but I've grabbed the proof video and you can watch it at http://grabilla.com/02c0a-6f42a829-1535-4016-a7ff-cbbda665bee5.html – intrueder Dec 10 '12 at 18:29
  • If wizard is not available, See the blog http://dl.my/2013/create-unit-tests-function-not-available-or-disabled/ or my answer below http://stackoverflow.com/a/15184716/52277 – Michael Freidgeim Mar 13 '13 at 20:01
  • Note, that VS 2012 Create Unit Tests Wizard support generation tests for **public** methods only, when in previous version private methods were also supported. – Michael Freidgeim Apr 29 '13 at 21:20
  • In my version of Visual Studio that has QuickLaunch (the textbox in the upper right corner) one can just write "CreateUnitTests" (or even shorter) to get to the command. – LosManos Mar 11 '15 at 11:41
19

Here is how to to enable it again :

Method 1 - Command Window

If you find hard enough, you will discover that the command to invoke the Create Unit Tests... is actually:

EditorContextMenus.CodeWindow.CreateUnitTests

You can actually type that in the Command Window to invoke the Create Unit Test Wizard. If you find it too verbose, you can actually create an alias for it.

alias ut EditorContextMenus.CodeWindow.CreateUnitTests

Then just type ut to launch the wizard.

Method 2 - Keyboard Shortcut

The next method is to go to Tools->Options->Environment->Keyboard and set a shortcut key of your preference.

Method 3 - Re-enable the Create Unit Tests... Context Menu.

To re-enable the Create Unit Tests... menu, go to Tools->Customize... to launch the Customize dialog. At the Customize dialog, go to the Commands tab, select the Context menu radio button and choose Editor Context Menus | Code Window.

You will realized that the menu item is actually available in the context menu. The VS developers were kind enough to leave it there for us.

Click on the Create Unit Tests... menu item and click Move Down until it's on/under the "Run tests.." Command. Then click Close.

Restart Visual Studio 2012 and that's it ! The context menu will be available!

You may discover that using any of the above methods may not work. i.e. The Command Window will tell you that the command is not available, the keyboard shortcut will not fire or the Context menu will be available but disabled.

To allow all these to work, you will first need to have a Unit Test Project in your solution. After creating the Unit Test Project, you will need to manually Add a Unit Test item to the project even though the project unfolds with one on its own. After you have done this, everything will function as it is like back in Visual Studio 2010. You can safely remove those UnitTest1.cs files.

Source(with images, i don't have enough Rep Points to put them) :
http://serena-yeoh.blogspot.fr/2013/02/visual-studio-2012-create-unit-test.html

(ps : read the Caveats !!!! )

Sebastien H.
  • 6,818
  • 2
  • 28
  • 36
9

The answer of intrueder didn't work for many users. When I enter UT in a command window, I sometimes had the following

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

But sometimes it worked for the same solution, so behavior seemed to be intermittent.

With a help of Dawa Law's post “Create Unit Tests… Function Not Available Or Disabled" I found that during  each  Visual Studio session  you need to create one test class manually before wizard will be available.

If you have an existing Unit Test project in the solution,

At Solution Explorer, right click the Unit Test project –> Add –> Unit Test… This will create a new unit test class and trigger Visual Studio that an existing Unit Test class is available, thus enables Create Unit Tests wizard.  Note: You may delete the created Unit Test class file (UnitTestX.cs) as it is used to trigger the function.

If you do not have an existing Unit Test project in the solution, you need to create it before adding a manual class:

Go to File –> Add –> New Project… In the Add New Project window, select Installed –> Visual C# –> Test –> Unit Test Project. Give it a meaningful name and click OK

The Dawa Law's post “Create Unit Tests…” Function Not Available Or Disabled has snapshots to illustrate each step.

Note, that VS 2012 Create Unit Tests Wizard support generation tests for public methods only, when in previous version private methods were also supported.

.

Community
  • 1
  • 1
Michael Freidgeim
  • 26,542
  • 16
  • 152
  • 170
6

The "Create Unit Tests" menu was removed in the beta. I'm not certain if there are plans to bring it back or not. If it really is a problem for you, request it on the Visual Studio UserVoice site: http://visualstudio.uservoice.com/

Scott Dorman
  • 42,236
  • 12
  • 79
  • 110
  • 1
    Direct Link: http://visualstudio.uservoice.com/forums/121579-visual-studio/suggestions/2748862-add-create-unit-tests-menu-option-back- and http://visualstudio.uservoice.com/forums/121579-visual-studio/suggestions/2842716-bring-back-the-generate-unit-test-wizard – habakuk Aug 29 '12 at 12:53
4

You may regain the right click "Create Unit Tests..." by importing the following vssettings from here.

Akhil Jain
  • 13,872
  • 15
  • 57
  • 93
Dawa Law
  • 128
  • 8
3

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

Method 3 - Re-enable the Create Unit Tests... Context Menu.

This is by far the best method ever. To re-enable the Create Unit Tests... menu, go to Tools->Customize... to launch the Customize dialog. At the Customize dialog, go to the Commands tab, select the Context menu radio button and choose Editor Context Menus | Code Window.

ping
  • 663
  • 6
  • 13
0

"You may discover that using any of the above methods may not work. i.e. The Command Window will tell you that the command is not available, the keyboard shortcut will not fire or the Context menu will be available but disabled.

To allow all these to work, you will first need to have a Unit Test Project in your solution. After creating the Unit Test Project, you will need to manually Add a Unit Test item to the project even though the project unfolds with one on its own. After you have done this, everything will function as it is like back in Visual Studio 2010. You can safely remove those UnitTest1.cs files."

(Michael Freidgeim)

varini
  • 1
  • 3