回答:
Visual Studioがなくてもmstest.exeを実行できます。
以下のVisual Studio ISO用のエージェントの1つをダウンロードし、サーバーにテストエージェントをインストールします。
Visual Studio 2017(127MBのディスク容量、ダウンロード用の容量より少ない)
Visual Studio 2015(128MBのセットアップ、2GBのディスク容量が必要)
Visual Studio 2012(224MB)
Visual Studio 2013(287MB)
Visual Studio 2010(515MB)
これにより、コマンドラインからmstest.exeを実行するために必要なすべてのものがインストールされ、Visual Studioよりもはるかに軽量になります。私が正しく覚えている場合は、テストエージェントのみをインストールするために、約500 mbのダウンロードと約300 mbをダウンロードします。
更新
VS 2017より古いバージョンについては、こちらをご覧ください。
この答えは特にVisual Studio 2017に関係しており、答えはyesです。ただし、Microsoftは関連する実行可能ファイル(MSBuild.exe
およびMSTest.exe
)を見つけるための公式のAPIをまだ提供していないため、レジストリキーの読み取りや、これらのファイルを見つけるためのさまざまなディレクトリの調査を行っていることに注意してください。あなたは警告されました。
MSTest.TestFramework
をそれらのプロジェクトにインストールしMicrosoft.VisualStudio.QualityTools.UnitTestFramework
、それらから参照を削除します。ここで必要なのは、Visual Studio 2017ビルドツールをインストールし、呼び出しmsbuild.exe
てビルドを実行することだけです。MSTest.exe
、vstest.console.exe
あなたはそれを呼び出すことができます。これらの実行可能ファイルがMSBuild.exe
ビルドツールと同じディレクトリ構造に存在しないため、これらの実行可能ファイルがどこにあるかを実際に把握するのは簡単ではないことに注意してください。最後に、そして非常に重要なことですがMSTest.TestFramework
、Visual Studio IDE内からテストを使用して実行できるようにする必要がある場合はMSTest.TestAdapter
、単体テストプロジェクトにもインストールする必要があります。
1:VS2017はサイドバイサイドインストールをサポートしますが、最新のインストールのみを記録する単一のレジストリキーを使用します。したがって、Test Agentを最後にインストールした場合、キーはそのインストールディレクトリを指しますが、Test Agentにはが含まれていないMSBuild.exe
ため、このレジストリキーに依存して実行可能ファイルのパスを特定するコードは失敗します。マイクロソフトがテストエージェントをビルドツールのオプションの一部にできなかった理由(すべてのEXEが同じディレクトリ階層に存在するため)は、誰もが推測しています。
File extension specified '.webtest' is not a valid test extension.
ます。
vswhere
は何よりも優れていますが、MS インストールがVSインストールディレクトリに対して相対的にどこにあるのかを想定する必要があります...(いつ?) 。MicrosoftがMSBuild / MSTest / VSTestへのパスを取得するためのプログラム的な方法を作成できない、または作成しない理由(VSのインストールディレクトリは、誰も気にしません)は私を超えています。
No test is available in C:\Users\..\Desktop\MyExeName.exe...
。私は開いているSOに質問を。手がかりがあれば、よろしくお願いします。
多分できると思いますが、間違いなくサポートされていません。
このブログ記事は、Visual StudioがインストールされていなくてもMSTestが機能していると主張する人によって書かれています。
@crocpulsarでは、ビルドサーバーにVisual Studioをインストールする必要がありますが、追加のライセンスを購入する必要はありません。
VSをインストールせずにビルドとMSTestを動作させるには、依存関係が多すぎます。これは、間違いなくサポートされていません。
ビルドを開始する人がライセンスを持っている限り、ビルドサーバーにライセンスは必要ありません。これは2005年の暗黒の時代から当てはまり、エディションの平等がある限り問題ありません。
チームの全員がUltimateを使用している場合は、ビルドサーバーに自由にインストールできます。ただし、チームメンバーの1人がPremiumを使用している場合は、ビルドサーバーにPremiumをインストールするのが理想的です。これにより、コードカバレッジ、テスト影響分析、アーキテクチャ検証など、他の多くのビットも有効になります。
Visual Studio 2017 IDEをインストールせずに、サーバーでこれを動作させました。私の要件は
私は他の回答で述べられているいくつかのことを組み合わせて、次にここで別のことを行わなければなりませんでした。
VS2017:
ステップ3では、次の問題を修正しました。
"この参照を解決できませんでした。アセンブリ" Microsoft.VisualStudio.QualityTools.UnitTestFramework "が見つかりませんでした"
それが原因:
「エラーCS0234:タイプまたは名前空間名 'VisualStudio'は名前空間 'Microsoft'に存在しません(アセンブリ参照がありませんか?) "
プロジェクトへの参照を追加する必要はありませんでした。ただし、vstest.console.exeへのパスはTestAgentフォルダーに含まれています(私にとっては「C:\ Program Files(x86)\ Microsoft Visual Studio \ 2017 \ TestAgent \ Common7 \ IDE \ CommonExtensions \ Microsoft \ TestWindow」でした) )
VS 2012をインストールせずにビルドサーバーでMsTestを実行するために実行した手順は次のとおりです。
'msdia110.dll'をc:/windows/syswow64/regsvr32.exe / iに登録します。時間を確認し、確認する前に別のバージョンのregsvr32.exeを試しましたが、レジストリにあります)
環境変数「MSTEST_HOME」を追加し、「c:\ dev \ mstest \」またはパスに設定します。ビルドスクリプトで環境変数を使用しました。
MsTest実行エラーのデバッグ:
「MsTest.exe.config」に追加
<system.diagnostics>
<trace autoflush="true" indentsize="4">
<listeners>
<add name="EqtListener" type="System.Diagnostics.TextWriterTraceListener" initializeData="C:\MsTest.log" />
</listeners>
</trace>
<switches>
<add name="EqtTraceLevel" value="Verbose" />
</switches>
</system.diagnostics>
mstest.exe webtestツールを実行する必要がある場合は、Visual Studio Enterprise試用版をインストールして、少なくとも1回(起動するだけで)実行できることを確認します。このアカウントでテストを実行すると、追加の必要はありません。したがって、システムアカウントでテストを実行する場合は、以下のようなものを使用する必要があります。
PS C:\agent> psexec -s cmd.exe
C:\Windows\system32>"C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\mstest.exe"
Microsoft (R) Test Execution Command Line Tool Version 15.0.27520.0
Copyright (c) Microsoft Corporation. All rights reserved.
Please specify tests to run, or specify the /publish switch to publish results.
For switch syntax, type "MSTest /help"