4

VisualStudioのフォルダー構造

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

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

  • Alt + 1は、プロジェクトBLL.Testでテストを実行します。
  • Alt + 2は、プロジェクトDAL.Testsでテストを実行します。
  • Alt + 3はそれらの両方を実行します(つまり、[Tests]フォルダー内のすべてのテストと
  • Alt + 4は、フォルダー[Tests.Integration]でテストを実行します。

TestDriven.netには、選択したフォルダーまたはプロジェクトを右クリックして[テストの実行]を選択することにより、テストのみを実行するオプションがあります。これを行うことができますが、キーボードコマンドを介してグラフィカルなテストランナーを使用すると素晴らしいでしょう。

TestDriven.netテスト実行出力

現在、VS2008、ReSharper 4、nUnitを使用しています。ただし、一般的なセットアップに関するアドバイスももちろんありがたいです。

4

4 に答える 4

2

私は実際に、マクロにバインドされたキーボード コマンドを使用して、これに対する一種の解決策を自分で見つけました。マクロは、[ツール] > [マクロ] > [TemporaryMacro の記録] メニューから記録されました。記録中に [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 ファイルを使用します。これは、バージョン管理に簡単にチェックインして、プロジェクトで作業するすべての人に配布できます。

于 2008-08-17T22:08:13.627 に答える
0

これは少し厄介な解決策ですが、実行するテストのグループごとにいくつかの外部ツールを構成できます。この方法でReSharperテストランナーを起動できるかどうかはわかりませんが、コンソールバージョンのnunitを実行することはできます。これらのツールをセットアップしたら、コマンド「Tools.ExternalCommand1」、「Tools.ExternalCommand2」などにキーボードショートカットを割り当てることができます。

これは実際にはうまくスケーリングできず、変更するのは面倒ですが、テストを実行するためのキーボードショートカットが提供されます。これを行うにはもっと簡単な方法があるはずだと感じています。

于 2008-08-17T21:52:03.737 に答える
0

私はこれを使ったことがありませんが、多分それは役立つかもしれません...。

http://www.codeplex.com/VS2008UnitTestGUI

「プロジェクトの説明このプロジェクトは、VisualStudio2008でコーディングされた複数の.NET単体テストアセンブリ内ですべての単体テストを実行することを目的としています。」

于 2008-08-25T04:03:06.313 に答える
0

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

于 2008-08-18T01:47:11.017 に答える