1

Visual Studio 2017 用のカスタム テスト アダプターに取り組んでいDebugger.Launch()ます。アダプター コードを追加するなどのハックを使用せずにテスト アダプターをデバッグするように Visual Studio を構成するにはどうすればよいですか?

4

1 に答える 1

3

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

于 2017-05-01T00:07:51.613 に答える