如何使用 Visual Studio 和 WSL 2 来调试 .NET Core 单元测试?

问题描述 投票:0回答:2

使用 Visual Studio,我可以调试在 Windows 和 WSL 2 中运行的 .NET Core 应用程序。对于 WSL 2,我使用 此扩展。这工作正常。我还可以在 Windows 中调试我的单元测试。这也工作得很好。但是,我不知道如何使用在 WSL 2 中运行的 Visual Studio 来调试我的单元测试。我希望有人可以帮助我并解释我如何不仅可以调试 WSL 2 中的控制台应用程序和 Web 应用程序,还可以调试我的单元测试。请告诉我。

visual-studio .net-core windows-subsystem-for-linux .net-5 wsl-2
2个回答
18
投票

2022 年 2 月更新 - VS 2022

在 win 10 开发机器上运行

dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

重新启动!

在开发机上运行

wsl --set-default-version 2
wsl --update
wsl --install -d Ubuntu

在新的 wsl 机器中运行(ubuntu 22.04 或更高版本)

sudo apt update && sudo apt upgrade -y && sudo apt install dotnet6 -y

在新的 wsl 机器中运行(ubuntu 22.04 之前的版本 - 现已过时)

wget https://packages.microsoft.com/config/ubuntu/20.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb 
sudo dpkg -i packages-microsoft-prod.deb
sudo apt update && sudo apt upgrade -y
sudo apt install apt-transport-https git 
sudo apt update && sudo apt install dotnet-sdk-6.0 -y

将 testenvironments.json 添加到您的解决方案根目录

{
    "version": "1",
    "environments": [
        {
            "name": "Ubuntu",
            "type": "wsl",
            "wslDistribution": "Ubuntu"
        }
    ]
}

Visual Studio 将在测试资源管理器中显示一个新的下拉菜单,选择“Ubuntu”,使用 wsl 构建一次后测试就可以运行和调试。

此设置不依赖于 Docker。 Winver 显示“20h2”

不支持使用“.NET Core Debugging with WSL 2”扩展进行调试测试。

此工具不支持在 WSL2 中运行测试,但我知道我们的姊妹团队在其待办事项中已启用此功能! 使用 WSL 2 进行 .NET Core 调试 - 问答


6
投票

更新:该功能可在 Visual Studio 2022 中使用。它使您能够在 WSL 2 和 Docker 中调试测试。

此处提供了操作方法:https://learn.microsoft.com/en-us/visualstudio/test/remote-testing?view=vs-2022

© www.soinside.com 2019 - 2024. All rights reserved.