使用 Visual Studio,我可以调试在 Windows 和 WSL 2 中运行的 .NET Core 应用程序。对于 WSL 2,我使用 此扩展。这工作正常。我还可以在 Windows 中调试我的单元测试。这也工作得很好。但是,我不知道如何使用在 WSL 2 中运行的 Visual Studio 来调试我的单元测试。我希望有人可以帮助我并解释我如何不仅可以调试 WSL 2 中的控制台应用程序和 Web 应用程序,还可以调试我的单元测试。请告诉我。
在 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 调试 - 问答
更新:该功能可在 Visual Studio 2022 中使用。它使您能够在 WSL 2 和 Docker 中调试测试。
此处提供了操作方法:https://learn.microsoft.com/en-us/visualstudio/test/remote-testing?view=vs-2022