LoginSignup
24
24

More than 5 years have passed since last update.

.NET アプリの CLI でのテストでは MSTest.exe ではなく vstest.console.exe を使おう

Last updated at Posted at 2016-05-17

Visual Studio 2013 でテストを実行する際、プロセッサのアーキテクチャはメニューの [テスト] -> [テスト設定] -> [既定のプロセッサアーキテクチャ] から、x86 / x64 を選択できます。

しかし、CI ツールなどから CLI でテストを流す時、これまで通り MSTest.exe を使おうとすると、例えば Oracle Data Provider for .NET (ODP.NET) で DB 接続するケースで、開発環境に 64bit 版のみがインストールされている場合、MSTest.exe は 32bit 版を使おうとするため

要求された .Net Framework データ プロバイダーが見つかりません。これは、インストールされていない可能性があります。

のようなエラーを吐いてテストが失敗してしまいます。MSTest.exe は x86 のプロセッサアーキテクチャのみに対応した古いツールということになります。

そこで、MSTest.exe ではなく vstest.console.exe を使います。

MSTest.exe は(Visual Studio 2013 の場合)、C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE 配下にありますが、vstest.console.exe は C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\CommonExtensions\Microsoft\TestWindow 配下にあり IDE の拡張モジュールの位置づけでしょうか。

MSTest.exe も vstest.console.exe も 開発者コマンドプロンプト(C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\Tools\Shortcuts) にはパスが通されていて任意のフォルダで使用できます。

vstest.console.exe のコマンドラインオプションの解説は VSTest.Console.exe のコマンドラインオプション にあります。

/Platform:[ プラットフォームの種類 ] でプロセッサアーキテクチャ(x86、x64、および ARM )を指定できます。

Jenkins では VSTestRunner Plugin というプラグインが提供されていて、プロセッサアーキテクチャは WebUI のラジオボタンで設定できます。

24
24
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
24
24