IBTestConsole コマンド インターフェース

ここでは Incredibuild for Unit Tests を NUnit フレームワークでアセンブリ レベルまたはテスト レベルの分散モードに設定・実行する方法をみていきます。NUnit の分散モードは IBTestConsole コマンドで指定します。

対応フレームワーク

IBTestConsole は次のフレームワークに対応しています。

  • NUnit 2

  • NUnit 3

  • Google Test (Gtest)

実行したフレームワークは自動的に検出されます。ただし、特定のフレームワークを強制的に実行させたい場合は、/test=NUnit3 または/test=NUnit2 CLIコマンドラインオプションを使用します。

IBTestConsole の実行

IBTestConsole を設定し実行するには、まず、Incredibuild のインストールフォルダにあるIBTestConsole.exe ファイルを実行する必要があります。これはパラメーターに応じて、様々な動作モードで Incredibuild for Unit Tests を設定できるコンソール アプリケーションです。

IBTestConsoleは、次のような構文で使用します。

IBTestConsole [command] [options]

  • /command: ユニットテスト フレームワークのオリジナルのコマンドです。フラグを追加できます (以下を参照)。

  • [Options]: 詳しくは下表をご覧ください。

フレームワークの対応コマンド フラグ

Incredibuild for Unit Tests で利用できるフラグは次の通りです。フレームワークのバージョンによってフラグが異なります。各フラグの詳細については、Nunit 3 CLI リファレンス およびNunit2 CLI リファレンス を参照してください。

NUnit 2 の対応フラグ

  • /run
  • /runlist
  • /include
  • /exclude
  • /result、/xml
  • /noresult、/noxml
  • /framework
  • /timeout

NUnit 3 コマンド フラグ

  • @FILE
  • --testlist=FILE
  • --where=EXPRESSION
  • --config=NAME
  • --framework=FRAMEWORK
  • --timeout=MILLISECONDS
  • --seed=SEED
  • --skipnontestassemblies
  • --result=SPEC
  • --noresult
  • --shadowcopy
  • --noheader、--noh
  • --params | p=PARAMETER
  • --dispose-runners

GTest コマンド フラグ

  • --gtest_output
  • --gtest_filter

IBTestConsole オプション

IBTestConsole コマンドに追加できるオプションは次の通りです。

オプション

説明

備考

/help

このメッセージをスクリーンに表示する

/logfile=<filename>

ログファイル名を指定します。

/loglevel=<level>

ロギング レベルを設定します。[トレース、デバッグ、インフォ、警告、エラー、重大エラー]の表示が可能です

/openmonitor

テスト実行時にビルドモニターを開く

/targetdir=<path>

テスト フレームワークを実行する作業ディレクトリを指定します。

テスト アセンブリと異なるディレクトリから IBTestConsole を起動する場合に使用します。

/testlevel=<level>

テスト配信レベルを指定します。

サポートされる値=[自動、アセンブリ、ディープ、スイート、<利用コア数>].

  • アセンブリ レベル / テスト レベル:「/testlevel=default」はアセンブリ レベルの分散モードを設定します。

  • 利用コア数 - テストレベル配信で使用されるコアの数です。すべてのテストがコア間に均等に分散されます (例: テスト数が 1,000 件、N=200 の場合: 200 個のコアで 5 件ずつテストを実行します)。

  • Deep - プール内の利用可能なすべてのコアを使用し、各テストを異なるコアで実行するように取り組みます。

使用するコアの数によって並列化の効率が左右されることがあります。一般的には「/testlevel=N」オプションを「N」がローカルマシンのコア数の 2.5 倍程度になるように設定します。テスト レベルの最適化についてはこちらをご覧ください。

/test={framework}

実行済みのコマンドを特定のフレームワークとして IBTestConsole に処理させます。

デフォルトでは実行済みの対象フレームワークの検出を試みますが、このオプションを使用すると、実行済みのコマンドを特定のフレームワークとして処理できるようになります。

対応フレームワーク

  • NUnit2

  • NUnit3

リターンコード

IBTestConsole は次のリターン コードを返します。

コード

説明

0

処理が正常に終了。次の全段階で内部エラーは発生しませんでした。

  • コマンドラインの正誤
  • ディスカバリー ステージ
  • テストの実行
  • 結果の統合 (テストが失敗した場合も含む)
  • コンソール出力の表示 (該当する場合)
1

上記のいずれかの段階で内部エラーが発生。

-1

予期せぬ内部エラーが発生。