ReSharper 2019.2ヘルプ

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 - 実行またはデバッグできる単体テスト

  • ThemedIcon TestMethodSuccess Screen Gray - 最後の実行中に合格した単体テスト。

  • ThemedIcon TestMethodFail Screen Gray - 最後の実行中に単体テストが失敗しました。

現在のドキュメントでテストを実行する

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

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

  • または、メインメニュー(ReSharper | ユニット・テスト)、コンテキストメニュー、または Ctrl+T,R / Ctrl+T,D ショートカットで使用可能なユニット・テストの実行 / ユニット・テストのデバッグコマンドを使用できます。これらのコマンドの動作は、キャレットの位置またはエディターでの選択に応じて異なります。
    • 単一のテストを実行またはデバッグするには、テスト名またはエディター内の宣言内の任意の場所にキャレットを設定します。

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

テストを実行またはデバッグする方法を問わず、実行の進行状況、結果、および出力が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

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

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

  • 単体テストエクスプローラーからテストを実行するには、目的のテストを選択し、ツールバーのユニット・テストの実行 ThemedIcon RunTest Screen Gray / ユニット・テストのデバッグ ThemedIcon Debug Screen Gray をクリックするか、対応するショートカット(Ctrl+T,R / Ctrl+T,D )を使用します。

  • ソリューションエクスプローラーまたはクラスビューからテストを実行またはデバッグするには、テストを含む項目 (ファイル、フォルダー、プロジェクト) を選択し、メインメニュー (ReSharper | ユニット・テスト)、コンテキストメニュー、または対応する Ctrl+T,R / 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++テストページで定義することができます。

cpp unit test sessions

実行結果と出力の分析

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

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

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

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

Unit test filters
デフォルトでは、すべての状態のテストが表示されますが、対応するアイコンをクリックすると、その状態でテストをフィルタできます。 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の環境変数のみが使用されます。

最終更新日: 2019年9月17日

関連ページ:

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

ReSharperがVisual Studioのテキストエディターに追加する最も目立つものは、アクションインジケータとアクションリストです。ReSharper(C#、VB.NET、XML、CSS、JavaScript、ASP.NETなど)でサポートされているすべてのファイルに表示され、利用可能な操作...

C++のコード生成

C++のサポートは、ReSharper C++(ReSharperと一緒に、またはReSharper Ultimateと別々にまたは並行してインストールできる)の専用製品で使用できます。ReSharperは、定型コードを生成するさまざまな方法を提供します。例:宣言されていないコードシンボルを使用し、...

Unit Test Sessionsウィンドウ

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

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

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

プロジェクトまたはソリューションでユニットテストを使用する

ユニットテストの支援は、他のJetBrains .NET製品を拡張することができます:ユニットテストをプロファイルできdotTraceとでユニットテストのコードカバレッジ分析dotCoverを。これらの製品はReSharper Ultimateにも含まれています。ReSharperの単体テストランナ...

C++ / CLIサポート

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