「単体テストの作成」の選択はどこにありますか?


154

新しいVisual Studio 2012 Ultimateをインストールしました。

私のソリューションでテストプロジェクトを作成しました。これにはいくつかのデフォルトの単体テストが含まれています。ただし、新しいメソッドを右クリックしても、[ユニットテストの作成]コンテキストメニューは表示されなくなります。

Visual Studio 2010 Ultimateを参照してください。 ここに画像の説明を入力してください

そしてVisual Studio 2012 Ultimate: ここに画像の説明を入力してください

なぜそれが起こり得るのでしょうか?

更新:

Visual Studio 2012および2013のソリューション:

Microsoftはここでそれを認めており、それを修正するパッチに関する公式の作業を提供しています。ダウンロード、インストールしてお楽しみください!


これらは両方とも同じプロジェクトまたはmvcビルドですか?
ダニエルA.ホワイト

これらは、ゼロから構築された新しいMVC 4プロジェクトです。
Houman

面白い。「ユニットテストの実行」をクリックするとどうなりますか?
ディエゴ

2
これをバグとして報告します。
Daniel A. White

4
VS 11は、MSTestを介してテストインフラストラクチャを提供することから、プラグイン可能なテストフレームワークを提供することへと大きく前進しました。これはその決定からのフォールアウトになる可能性があります。どちらの方法でもバグを
報告し

回答:


86

この機能は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と非常に緊密に結合されており、プライベートアクセサーなどの機能に依存して機能していたため、このウィザードはカットされました。ここでは代替案を模索していますが、まだ良い解決策はありません。

編集回避があります:http : //blogs.msdn.com/b/malaysia/archive/2013/02/20/right-click-create-unit-tests.aspx


16
彼らが実用的な解決策を考え出すことを願っています。それ以外の場合は大きく後退しているようです
Andrew Harry

3
その回避策の3番目のオプションは、VS2013では使用できなくなったようです。
サンダー

機能はVS2015blogs.msdn.com/b/visualstudioalm/archive/2015/03/06/…に戻ってきます。これは、visualstudio.uservoice.com / forums / 121579 - visual - studio / で投票したものに感謝します。。@furier:多分あなたはそれに投票しましたか?
LosManos 2015年

つまり、それは5分前に存在しました...今は存在しないだけです-なぜそれが行き来するのですか?
BrainSlugs83 2017


28

メニュー項目はまだ残っていますが、理由は不明ですがコードエディターには表示されません。ただし、ビジュアルスタジオコマンドを使用して単体テストウィザードを実行できます。必要なコマンドは

EditorContextMenus.CodeWindow.CreateUnitTests

コマンドウィンドウを開き、そこでコマンドを入力します。または、次のようにエイリアスコマンドを入力します。

alias ut EditorContextMenus.CodeWindow.CreateUnitTests

コマンドをより速く実行するためにエイリアスを割り当てます。

ウィザードを実行する別の方法は、キーボードショートカットです。Visual Studioで開く

Tools -> Options -> Environment -> Keyboard

[次を含むコマンドを表示]テキストボックスに「createunit」と入力してCreateUnitTestsコマンドを除外し、選択します。「新しいショートカットの使用」コンボで「テキストエディター」を選択し、「ショートカットキーを押す」テキストフィールドで必要なショートカットを押します(例:Ctrl + T、Ctrl + C)。最後に、割り当てボタンを押します。楽しい!


7
これを機能させることができません。メソッドにカーソルを合わせました。追加したショートコードを押すと、次のメッセージが表示されます:コマンド "EditorContextMenus.CodeWindow.CreateUnitTests"は使用できません。
Ralph Jansen

アップデートがインストールされているVisual Studio 2012 Ultimateを試してみましたが、問題があるかもしれません。
intrueder

1
これを試すと、LockTarと同じエラーが発生します。したがって、単体テストを使用する最も簡単な方法は、新しい単体テストプロジェクトを作成することです。
saadan

あなたがエラーを得た私はなぜ説明することはできませんが、私は証拠ビデオをつかんできたし、あなたがでそれを見ることができますgrabilla.com/02c0a-6f42a829-1535-4016-a7ff-cbbda665bee5.html
intrueder

ウィザードが使用できない場合は、ブログを参照してくださいdl.my/2013/create-unit-tests-function-not-available-or-disabledまたは下記の私の答えstackoverflow.com/a/15184716/52277
マイケルFreidgeim

19

これを再度有効にする方法は次のとおりです。

方法1-コマンドウィンドウ

難しいと思う場合は、「単体テストの作成...」を呼び出すコマンドが実際には次のとおりであることがわかります。

EditorContextMenus.CodeWindow.CreateUnitTests

コマンドウィンドウに実際に入力して、単体テストの作成ウィザードを起動できます。冗長すぎる場合は、実際にエイリアスを作成できます。

エイリアスut EditorContextMenus.CodeWindow.CreateUnitTests

次に、utと入力してウィザードを起動します。

方法2-キーボードショートカット

次の方法は、Tools-> Options-> Environment-> Keyboardに行き、好みのショートカットキーを設定することです。

方法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ユニットテストの作成ウィザードはパブリックメソッドの生成テストのみをサポートすることに注意してください。
Michael Freidgeim 2013

3
それは私を大いに助けてくれました、ありがとうございました。私の救済策にダミーの単体テストの追加手順がありませんでした。
Tanveer Badar 2014

1
重要な1つの単体テストを手動で作成します。それまでメニュー項目が無効にされた理由がばかげています。
indolentdeveloper 2014

ここでも同じことが見つかりました.. dawalaw.com/2013/enable-create-unit-tests-on-visual-studio-2012
Sunny Tambi

9

intrueder答えは多くのユーザーにとってうまくいきませんでした。コマンドウィンドウでUTと入力すると、次のことが時々ありました。

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

ただし、同じソリューションでも機能する場合があるため、動作が断続的であるように見えました。

Dawa Lawの投稿「Create Unit Tests…Function Not Available or Disabled」の助けを借りて、各Visual Studioセッション中に、ウィザードを使用する前に1つのテストクラスを手動で作成する必要があることがわかりました。

ソリューションに既存の単体テストプロジェクトがある場合、

ソリューションエクスプローラーで、ユニットテストプロジェクトを右クリック–>追加–>ユニットテスト…これにより、新しいユニットテストクラスが作成され、既存のユニットテストクラスが使用可能なVisual Studioがトリガーされ、ユニットテストの作成ウィザードが有効になります。注:作成された単体テストクラスファイル(UnitTestX.cs)は、関数のトリガーに使用されるため、削除できます。

ソリューションに既存の単体テストプロジェクトがない場合は、手動クラスを追加する前に作成する必要があります。

[ファイル]-> [追加]-> [新しいプロジェクト]に移動します。[新しいプロジェクトの追加]ウィンドウで、[インストール済み]-> [Visual C#]-> [テスト]-> [単体テストプロジェクト]を選択します。わかりやすい名前を付けて[OK]をクリックします

ダワ法律の投稿は『単体テストの作成...』利用可能または使用不能になっていない機能は、各ステップを説明するためのスナップショットを持っています。

以前のバージョンでプライベートメソッドもサポートされていた場合、VS 2012ユニットテストの作成ウィザードはパブリックメソッドの生成テストのみをサポートすることに注意してください。


「ウィザードが利用可能になる前に、1つのテストクラスを手動で作成する必要があります」-それは結局私にトリックを
もたらし

おかげで私はダワ・ロウのブログを使用しました、そしてそれは最終的に行われます:)
アーメド・エルバット'19年


4

ここから次のvssettingsをインポートすることで、右クリックの「ユニットテストの作成...」を再び取得できます


3

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

方法3-[ユニットテストの作成...]コンテキストメニューを再度有効にします。

これは、これまでで最高の方法です。[単体テストの作成...]メニューを再度有効にするには、[ツール]-> [カスタマイズ...]に移動して、[カスタマイズ]ダイアログを起動します。[カスタマイズ]ダイアログで、[コマンド]タブに移動し、[コンテキストメニュー]ラジオボタンを選択して、[エディターコンテキストメニュー|エディター]を選択します。コードウィンドウ。


...そして何を?既にそこにリストされていますが、右クリックしても表示されません。
ルークプレット

0

「上記の方法のいずれかを使用しても機能しない場合があります。コマンドウィンドウに、コマンドが使用できない、キーボードショートカットが起動しない、またはコンテキストメニューは使用できるが無効になっていると表示されます。

これらすべてを機能させるには、まずソリューションに単体テストプロジェクトを用意する必要があります。単体テストプロジェクトを作成した後、プロジェクトを単体で展開しても、プロジェクトに単体テスト項目を手動で追加する必要があります。これを実行すると、Visual Studio 2010に戻ったときのようにすべてが機能します。UnitTest1.csファイルを安全に削除できます。」

(マイケルフライガイム)

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.