2008-08-17 10 views
4

Visual Studio folder structureVisual Studioで別のフォルダ/プロジェクトで個別にテストを実行するにはどうすればよいですか?

私はVisual Studioでユニットテストと統合テストのテストランを簡単に分離する方法についていくつかアドバイスが必要です。しばしば、または常に、私は上の図に示されているように、単体テストと統合テストのための別々のプロジェクトというソリューションを構成します。単体テストは非常に頻繁に実行されるが、コンテキストが正しく整列されたときに統合テストが自然に実行される。

私の目標は、何とかキーボードショートカットを使用するときに実行するテスト(またはテストフォルダ)を構成できることです。テストは、好ましくはグラフィカルテストランナー(ReSharpers)によって実行されるべきである。ですから、例えば

  • Altキー+ 1つの実行プロジェクトBLL.Testでのテスト、
  • Altキー+ 2つの実行プロジェクトDAL.Testsでテストを、彼らは両方(すなわち、すべての試験
  • Altキー+ 3つの実行[テスト]フォルダ、および
  • のAlt + 4つの実行フォルダ内のテスト[Tests.Integration]の右で選択したフォルダまたはプロジェクトでだけテストを実行するオプションを持っているTestDriven.net。

でそれをクリックしてRun Test(s)を選択します。キーボードコマンドとグラフィカルなテストランナーと素晴らしいだろう。

TestDriven.net test run output

は現在、私はVS2008、ReSharperの4とNUnitのを使用します。しかし、一般的なセットアップのためのアドバイスももちろん評価されています。

答えて

2

私は実際に、キーボードコマンドをマクロにバインドすることで、この問題に対する解決策を見つけました。マクロは、[ツール]> [マクロ]> [テンポラリマクロの記録]メニューから記録されました。録音中に[Tests]フォルダを選択し、ReSharpers UnitTest.ContextRunを実行しました。これにより、ツール>オプション>環境>キーボードで、それ自身のキーボードコマンドにバインドされた、次のマクロが生成されました。

Sub TemporaryMacro() 
    DTE.Windows.Item(Constants.vsWindowKindSolutionExplorer).Activate 
    DTE.ActiveWindow.Object.GetItem("TestUnitTest\Tests").Select(vsUISelectionType.vsUISelectionTypeSelect) 
    DTE.ExecuteCommand("ReSharper.UnitTest_ContextRun") 
End Sub 

しかし、もっと素晴らしいのは、実行するプロジェクト/フォルダ/クラスを正確に設定できる、より一般的なソリューションです。たとえば、xmlファイルを使用します。これは、バージョン管理に簡単にチェックインして、プロジェクトで作業するすべての人に配布できます。

0

これはちょっとした解決策ですが、実行したいテストグループごとにいくつかを設定することができます(external tools)。この方法でReSharperテストランナーを起動できるかどうかは分かりませんが、コンソールバージョンのnunitを実行できます。これらのツールの設定が完了したら、コマンド "Tools.ExternalCommand1"、 "Tools.ExternalCommand2"などにキーボードショートカットを割り当てることができます。

これは実際にはうまくスケールされていません。テストを実行するためのキーボードショートカットを提供します。これを行うもっと簡単な方法があるように感じる。

0

VSマクロを使用してXMLファイルを解析し、/ fixtureコマンドライン引数を指定してnunit.exeを呼び出して、実行するクラスを指定したり、選択保存ファイルを生成したり、それを使用してnunitを実行できます。

0

私はこれを使ったことはありませんでしたが、多分それが助けになるかもしれません....

http://www.codeplex.com/VS2008UnitTestGUI

「プロジェクトの説明このプロジェクトは、アセンブリのVisual Studio 2008でコード化された複数の.NETユニットテスト内のすべてのユニットテストを実行している程度である 」

関連する問題