ReSharper 2019.3ヘルプ

C++のユニットテスト支援

ReSharperは、Visual StudioでGoogle C++テストフレームワーク(英語)C++テストフレームワーク、Catch(英語)Boost.Testフレームワーク (1.59以上)(英語)、およびdoctest単体テストフレームワーク(英語)の単体テストを検出、実行、およびデバッグできます。

ReSharperを使用すると、単体テスト、ファイル、プロジェクト、またはソリューションのすべてのテストを実行できます。また、テストセッションで任意の数のテストを組み合わせて実行することもできます。

現在のドキュメントでテストを発見する

ReSharperはエディター内で単体テストを検出し、エディター内の各項目の横に対応するアクションインジケータを追加します。

ReSharper shows different indicators for unit tests in the editor
  • ThemedIcon UnitTestingOptionsPage Screen Gray - 実行またはデバッグできる単体テスト

  • Passed —前回の実行中に合格した単体テスト。

  • Failed —ユニットテストは最後の実行中に失敗しました。

現在のドキュメントでテストを実行またはデバッグする

現在のドキュメントでユニットテストを実行またはデバッグする方法はいくつかあります。アクションインジケータ、メインメニュー、またはショートカットを使用することができます:

  • テストクラスの単一のテストまたはすべてのテストを実行またはデバッグするには、テストの横にあるアクションインジケーターをクリックするか、テストにキャレットを設定して Alt+Enterを押します。アクションリストで、テストクラスに実行 / デバッグを選択します。

  • または、ユニット・テストの実行 Run Unit Tests Ctrl+T,R / ユニット・テストのデバッグ Debug Unit Tests Ctrl+T,D コマンドを使用できます。これらのコマンドは、メインメニュー(ReSharper | ユニット・テスト)およびコンテキストメニューでも使用できます。これらのコマンドの動作は、キャレットの位置またはエディターでの選択に応じて異なります。

    • 単一のテストを実行またはデバッグするには、テスト名またはエディター内の宣言内の任意の場所にキャレットを設定します。

    • 複数のテストを実行するには、エディターで目的のテストを選択します。

テストを実行またはデバッグする方法を問わず、実行の進行状況、結果、および出力がUnit Test Sessionsウィンドウに表示されます。オープンユニットテストセッションがある場合、実行されたテストはこのセッションに追加されます。テストセッションがない場合、または既存のセッションがロックされている場合は、新しいテストセッションが作成されます。

必要に応じて、最後に実行したテストを Ctrl+T,T を押すか、メニューのReSharper | ユニット・テスト | 前回の実行を繰り返しを選択していつでも再実行することができます。

ソリューションの単体テストを発見する

ReSharperは、Visual Studio(ReSharper | ユニット・テスト | ユニット・テストまたはReSharper | Windows | ユニット・テスト、または Ctrl+Alt+T )にユニットテストエクスプローラーウィンドウを追加します。このウィンドウを使用すると、ソリューション全体で単体テストを探索して実行またはデバッグできます。プロジェクトの単体テストは、プロジェクトの作成後にウィンドウに表示されることに注意してください。現在開いているファイルからのテストは自動的に更新され、開かれたファイルから新しいテストが作成されるとすぐにユニットテストエクスプローラーに表示されます。

ユニットテストエクスプローラーを使用すると、次の操作を実行できます。

  • ソリューション内のテストを探索する:リストまたはツリービューですべてのユニットテストを参照し、サブストリングでテストとフィルターを検索し、プロジェクト、ネームスペースなどでユニットテストを再グループ化します。

  • ビュー内でダブルクリックして、任意のテストのソースコードに移動します。

  • 選択したテストを実行またはデバッグします。

  • 選択されたテストからの単体テストセッションを作成するおよび/または選択された項目を現在のテストセッションに追加します。

  • すべてのテストをソリューションからテキスト、XML、またはHTMLファイルにエクスポートします。

Unit Test Explorer displays test from the entire solution

プロジェクトまたはソリューションで単体テストを実行またはデバッグする

ユニットテストエクスプローラー、ソリューションエクスプローラー、またはクラスビューからテストを実行またはデバッグできます。ユニットテストエクスプローラーを使用すると、テストのみを表示し、必要な他のウィンドウ、プロジェクト、ファイル、クラスにテストが含まれていることがわかります。

  • 単体テストエクスプローラーからテストを実行するには、目的のテストを選択し、ツールバーのユニット・テストの実行 Run Unit Tests Ctrl+T,R / ユニット・テストのデバッグ Debug Unit Tests Ctrl+T,D をクリックします。

  • ソリューションエクスプローラーまたはクラスビューからテストを実行またはデバッグするには、テストを含む項目 (ファイル、フォルダー、プロジェクト) を選択し、メインメニュー (ReSharper | ユニット・テスト) およびコンテキストメニューでも使用可能なユニット・テストの実行 Run Unit Tests Ctrl+T,R / ユニット・テストのデバッグ Debug Unit Tests Ctrl+T,D コマンドを使用します。

  • ソリューション内のすべてのテストを実行またはデバッグするには、メインメニューでReSharper | ユニット・テスト | ソリューションからすべてのテストを実行を選択するか、Ctrl+T,Lを押します。

テストを実行またはデバッグする方法を問わず、実行の進行状況、結果、および出力がUnit Test Sessionsウィンドウに表示されます。オープンユニットテストセッションがある場合、実行されたテストはこのセッションに追加されます。テストセッションがない場合、または既存のセッションがロックされている場合は、新しいテストセッションが作成されます。

必要に応じて、最後に実行したテストを Ctrl+T,T を押すか、メニューのReSharper | ユニット・テスト | 前回の実行を繰り返しを選択していつでも再実行することができます。

単体テストセッションの使用

ReSharperでは、アプリケーションの特定の部分を対象とする単体テストを単体テストセッションにグループ化できます。単体テストセッションには、異なるプロジェクトのテストを含めることができます。複数のテストセッションを持ち、必要に応じて個別に実行することができます。単一のテストを複数の異なるテストセッションに含めることができます。

単体テストセッションに関する詳細な手順については、ユニットテストセッションの使用を参照してください。

実行プロセス

ReSharperは単体テストを実行するいくつかの方法を提供します。どちらの方法を選択しても、ユニットテストセッションウィンドウに実行の進行状況、テスト結果、および出力が表示され、カバレッジ結果がユニットテストカバレッジウィンドウに表示されます。

ユニットテストセッションでテストが実行されると、Unit Test Sessionsウィンドウのツールバーのステータスバーに実行の進行状況が表示され、実行の停止 ThemedIcon StopTest Screen Gray ボタンがアクティブになります。このボタンをクリックすると、テストの実行を中止できます。複数のユニットテストセッションを同時に実行できます。ただし、テストをデバッグする場合、一度に実行できるテストセッションは1つだけです。

必要に応じて、ツールバーの実行しているテストのトラック ThemedIcon TrackRun Screen Gray オプションを有効にすることができます。オンの場合、テストツリー内の選択は、現在実行中のテストに自動的に切り替えられ、出力パネルは実行中に現在のテストの出力を常に表示します。

テスト実行時の自動スクロール出力 ThemedIcon ScrollToBottom Screen Gray オプションを有効にして、実行中のテストの出力に従うこともできます。

単体テストを実行またはデバッグする場合、ReSharperはプロジェクトプロパティで指定されたコマンドおよび作業ディレクトリ構成パラメーターを使用します。これらのプロパティにアクセスするには、プロジェクトを右クリックしてプロジェクト・プロパティ | プロパティの構成 | デバッグを選択します。

コマンド引数プロパティ(デバッグ | ローカルWindowsデバッガ | コマンド引数)はデフォルトでは使用されません。テスト実行で使用するには、ReSharperオプション(Alt+R,,O)のツール | ユニット・テスト | テスト・フレームワーク | C++テストページで対応するチェックボックスを選択します。

実行設定がプロジェクトプロパティで指定されていない場合(たとえば、ライブラリプロジェクト、'フォルダーを開く'またはCMakeプロジェクト)、ReSharperオプションのツール | ユニット・テスト | テスト・フレームワーク | C++テストページで定義することができます。

ReSharper: Unit test sessions for C++ tests

実行結果と出力を分析する

実行が終了すると、ユニットテストセッションウィンドウに結果が表示されます。

出力ペイン(ツールバーの出力を表示する Show Output ボタンを使用して右または下に置くことができます)は、選択したテストの出力を表示します。

デフォルトでは、ReSharperは出力領域の現在の幅に応じて長い行を出力にラップします。必要に応じて、ReSharperオプションのツール | ユニット・テストページでユニットテストセッションの出力で長い行を折り返すチェックボックスをオフにして長い行を折り返しないように選択します。

ステータスバーには、セッション内のテストの合計数と、さまざまな状態のテスト数が表示されます。

デフォルトでは、すべての状態のテストが表示されますが、対応するアイコンをクリックすると、その状態でテストをフィルタできます。 Ctrl - 複数のアイコンをクリックして、いくつかの異なる状態でテストを表示することもできます。

Unit Test Sessionsウィンドウの各テストのステータスは、次のアイコンのいずれかで表示されます。

ThemedIcon RunningTest Screen Gray

単体テストは現在実行中です

ThemedIcon TestPending Screen Gray

単体テストは現在の実行で実行されるようにスケジュールされています

ThemedIcon StatusUnknown Screen Gray

単体テストは実行されませんでした

ThemedIcon Success Screen Gray

latsテストの実行でユニットテストに合格しました

ThemedIcon Error Screen Gray

latsテストの実行でユニットテストが失敗しました

ThemedIcon Ignore Screen Gray

ユニットテストは最後のテスト実行で無視されました

ThemedIcon StatusAborted Screen Gray

ユニットテストは最後のテスト実行で中止されました

ThemedIcon StatusInconclusive Screen Gray

単体テストは開始されましたが、ReSharperはテストランナーの出力を読み取ることができませんでした。これは、テストランナーでエラーが発生した兆候である可能性があります。

グループ化項目のステータスを表示するために同じアイコンが使用されます

アイコンは各セッションのタブでも使用され、セッションの全体的な実行結果を表示します。

テストセッションツリー上の対応するアイコンは、各状態にあるテストの数を示します。 ThemedIcon UnitSession Screen Gray アイコンには、セッション中のテストの総数が表示されます。
これらのアイコンを使用すると、ツリーをフィルタリングして、対応するステータスのテストだけが表示されるようにすることができます。

テストランナーの設定

コマンド、その引数、作業ディレクトリ、環境変数などの単体テスト実行変数は、通常プロジェクトプロパティ(プロジェクト・プロパティ | プロパティの構成 | デバッグ)で指定され、そこからReSharperが取得します。
ただし、これらのプロパティがそこに指定されていない場合(たとえば、ライブラリプロジェクト、「フォルダーを開く」またはCMakeプロジェクトなど)、ReSharperオプション(Alt+R,,O)のツール | ユニット・テスト | テスト・フレームワーク | C++テストページで実行設定を定義できます。

そのページでマージ環境フラグを使用することもできます。選択されている場合、ReSharperは環境フィールドで指定された環境変数をVisual Studioからの環境変数に追加します。選択されていない場合は、Visual Studioの環境変数のみが使用されます。

最終更新日: 2020年2月24日

関連ページ:

アクションインジケータとアクションリスト

ReSharperがVisual Studioテキストエディターに追加する最も注目すべきものには、アクションインジケータとアクションリストがあります。これらは、ReSharperでサポートされるすべてのファイル(C#、VB.NET、XML、CSS、JavaScript、ASP.NETなど)に表示され...

C++のコード生成

ReSharperは、定型コードを生成するさまざまな方法を提供します。例:宣言されていないコードシンボルを使用し、これらのシンボルを用途に基づいて自動的に生成したり、型メンバーを生成したりすることができます。現在のタイプのメンバー生成オプションは で利用可能です。これらおよび他の多くのコード生成ア...

Unit Test Sessionsウィンドウ

ReSharperの単体テストランナーでは、同じIDで複数のテストを実行することはできません。これは実際にはほとんど発生しませんが、同じIDのテストがある場合、それらはユニット・テストエクスプローラーおよびUnit Test Sessionsウィンドウに単一のノードとして表示され、それらのうち1つだ...

ユニットテストエクスプローラーウィンドウ

ReSharperの単体テストランナーでは、同じIDで複数のテストを実行することはできません。これは実際にはほとんど発生しませんが、同じIDのテストがある場合、それらはユニット・テストエクスプローラーおよびUnit Test Sessionsウィンドウに単一のノードとして表示され、それらのうち1つだ...

C++ / CLIサポート

C++ / CLIのサポートは、C++と.NETの両方の分析エンジンに依存しているため、ReSharper Ultimateライセンスが必要です。標準ISO C++構文に加えて、ReSharperは、CLR参照用の、マネージヒープへの割り当て用のなど、MicrosoftのC++ / CLIの仕様構文...