Visual Studio 2017 用のカスタム テスト アダプターに取り組んでいDebugger.Launch()
ます。アダプター コードを追加するなどのハックを使用せずにテスト アダプターをデバッグするように Visual Studio を構成するにはどうすればよいですか?
1 に答える
Microsoft 子プロセス デバッグ パワー ツール
Microsoftの従業員によって作成されたMicrosoft Child Process Debugging Power Toolをインストールします。これにより、Visual Studio デバッガーを子プロセスにアタッチするように構成できます (vstest.console.exe がテストを実行する方法です)。
インストールしたら、ソリューションを開き、子プロセスのデバッグを有効にします。1) 次の Visual Studio メニューの場所にある子プロセスのデバッグ設定に移動しますDebug -> Other Debug Targets -> Child Process Debugging Settings...
。2) 子プロセスのデバッグtrue
を有効Save
にします。3) オプションで、ドロップダウンを使用して設定を保持し、この設定ソース管理にチェックイン可能
設定を保持することを選択した場合、設定ファイルは次のようになります。
<?xml version="1.0" encoding="utf-8"?>
<!-- EngineFilter Guid was found here: https://blogs.msdn.microsoft.com/martintracy/2006/05/16/debug-engine-guids/ -->
<ChildProcessDebuggingSettings IsEnabled="true" xmlns="http://schemas.microsoft.com/vstudio/ChildProcessDebuggingSettings/2014">
<DefaultRule Attach="false" />
<Rule IsEnabled="true" ProcessName="TE.ProcessHost.Managed.exe" EngineFilter="{92ef0900-2251-11d2-b72e-0000f87572ef}" />
<Rule IsEnabled="true" ProcessName="vstest.discoveryengine.exe" EngineFilter="{92ef0900-2251-11d2-b72e-0000f87572ef}" />
<Rule IsEnabled="true" ProcessName="vstest.discoveryengine.x86.exe" EngineFilter="{92ef0900-2251-11d2-b72e-0000f87572ef}" />
<Rule IsEnabled="true" ProcessName="vstest.executionengine.exe" EngineFilter="{92ef0900-2251-11d2-b72e-0000f87572ef}" />
<Rule IsEnabled="true" ProcessName="vstest.executionengine.x86.exe" EngineFilter="{92ef0900-2251-11d2-b72e-0000f87572ef}" />
</ChildProcessDebuggingSettings>
これがセットアップされたら、プロジェクトが vstest.console.exe でデバッグするようにセットアップされていることを確認する必要があります。ここでの重要なポイントは、ネイティブ/アンマネージ デバッグを有効にすることです。そうしないと、子プロセスのデバッグ ツールが機能しません。
新しい csproj システム
次のようなファイルを編集または作成しlaunchSettings.json
ます。
{
"profiles": {
"DebugTestAdapter": {
"commandName": "Executable",
"executablePath": "C:\\Program Files (x86)\\Microsoft Visual Studio\\2017\\Enterprise\\Common7\\IDE\\Extensions\\TestPlatform\\vstest.console.exe",
"commandLineArgs": "Tests.dll --ListTests --TestAdapterPath:.",
"workingDirectory": "C:\\Projects\\TestAdapter\\Tests\\bin\\Debug\\net46"
}
}
}
csproj ファイルを変更して、ネイティブ デバッグを有効にする次のプロパティを含めます。
<PropertyGroup>
<EnableUnmanagedDebugging>true</EnableUnmanagedDebugging>
</PropertyGroup>
古い csproj システム
プロジェクトのデバッグ プロパティ ページで、次の設定を行います。
外部プログラムを開始します。
C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\Extensions\TestPlatform\vstest.console.exe
コマンドライン引数:
Tests.dll --ListTests --TestAdapterPath:.
作業ディレクトリ:
C:\Projects\TestAdapter\Tests\bin\Debug
ネイティブ コードのデバッグを有効にする:
この値をtrue