Sdílet prostřednictvím


Vzdálené testování (experimentální verze Preview)

Vzdálené testování umožňuje vývojářům připojit Visual Studio 2022 ke vzdáleným prostředím pro spouštění a ladění testů. Tato funkce je užitečná pro vývojáře napříč platformami, kteří nasazují kód do více různých cílových prostředí, jako jsou různé operační systémy Windows nebo Linux. Vývojář například obvykle odešle změny do kanálu CI, aby získal zpětnou vazbu z testu spuštěného v Linuxu. Pomocí funkce vzdáleného testování můžete spouštět linuxové testy přímo ze sady Visual Studio připojením Průzkumníka testů ke vzdálenému prostředí.

Požadavky

Pro experimentální verzi vzdáleného testování platí následující požadavky:

  • Musíte používat Visual Studio 2022 Update 17.0 Preview 3 nebo novější.

  • V současné době tato funkce podporuje pouze testy rozhraní .NET a .NET Framework.

  • V současné době tato funkce podporuje image Windows, Ubuntu a Debian ve vzdáleném prostředí. V rozhraní .NET Framework jsou podporována pouze vzdálená prostředí Windows.

  • V současné době je většina zřizování prostředí ponechána specifikaci uživatele.

    Uživatel musí v cílovém prostředí nainstalovat potřebné závislosti. Pokud například vaše testy cílí na .NET 6.0, musíte se ujistit, že kontejner má nainstalované rozhraní .NET 6.0 prostřednictvím souboru Dockerfile. Může se zobrazit výzva k instalaci .NET Core ve vzdáleném prostředí, které je potřeba ke vzdálenému spuštění a zjišťování testů.

  • Pomocí podokna Výstupní>testy naplánujte monitorování stavu připojení ke vzdálenému prostředí.

    Pokud se například kontejner zastaví, zobrazí se v podokně Výstupní>testy zpráva. Tato funkce nemusí rozpoznat všechny scénáře, takže naplánujte kontrolu výstupu, pokud vypadá, že připojení není ztraceno. Konkrétně pokud není podokno Výstup nastaveno na Test, nemusí se zpráva okamžitě zobrazit. Pokud dojde ke ztrátě připojení, můžete pomocí rozevíracího seznamu prostředí v Průzkumníku testů nastavit připojení zpět do místního prostředí a potom znovu připojit vzdálené prostředí.

Nastavení vzdáleného testovacího prostředí

Prostředí se zadají pomocí souboru testenvironments.json v kořenovém adresáři vašeho řešení. Struktura souborů JSON implementuje následující schéma:

{
    "version": "1", // value must be 1
    "environments": [
        { "name": "<unique name>", ... },
        ...
    ]
}

Vlastnosti prostředí v testenvironments.json

Soubor testenvironments.json má následující vlastnosti prostředí.

Vlastnost Type Description
name string Uživatelsky přívětivý název prostředí, který se zobrazí v Průzkumníku testů. Musí být jedinečný v rámci souboru testEnvironments.json .
localRoot string [Volitelné] Cesta na místním počítači (absolutní nebo relativní vzhledem k adresáři řešení), která se promítá do vzdáleného prostředí. Pokud není zadáno, výchozí hodnotou je kořen úložiště v kontextu úložiště Git (v sadě Visual Studio 2022 verze 17.1 a novější). Výchozí hodnotou mimo úložiště Git je adresář řešení.
type enum Určuje typ vzdáleného prostředí. Hodnota může být buď docker, wslnebo ssh.
dockerImage string Název image Dockeru, která se má načíst v prostředí Dockeru
Tato hodnota se vyžaduje, pokud je dockerprostředí type .
dockerFile string Cesta k souboru Dockeru vzhledem k adresáři řešení pro sestavení image a načtení v prostředí Dockeru
Tato hodnota se vyžaduje, pokud je dockerprostředí type .
wslDistribution string Název místní distribuce WSL, ve které se má spustit testovací prostředí.
Tato hodnota se vyžaduje, pokud je wslprostředí type .
remoteUri string Identifikátor URI, který určuje připojení ke vzdálenému počítači. Například ssh://user@hostname:22.
Tato hodnota se vyžaduje, pokud je sshprostředí type .

Poznámka:

Je nutné zadat buď vlastnost dockerImage , dockerFile ale nikoli obě vlastnosti.

Připojení místního kontejneru

Pokud se chcete připojit ke kontejneru spuštěném místně, musíte mít na místním počítači Docker Desktop . Volitelně můžete povolit integraci WSL2 pro lepší výkon.

V souboru Dockerfile je možné prostředí zadat v souboru testEnvironments.json v kořenovém adresáři vašeho řešení. Používá následující vlastnosti:

{
    "name": "<name>",
    "type": "docker",
    "dockerImage": "<docker image tag>",
}

Následující příklad ukazuje soubor testenvironments.json pro místní image kontejneru s názvem <mcr.microsoft.com/dotnet/sdk>.

{
    "version": "1",
    "environments": [
        {
            "name": "linux dotnet-sdk-5.0",
            "type": "docker",
            "dockerImage": "mcr.microsoft.com/dotnet/sdk"
        }
    ]
}

Následující příklad ukazuje soubor Dockerfile pro spouštění testů, které cílí na .NET 5.0. Druhý řádek zajistí, že se ladicí program může připojit a spustit v kontejneru.

FROM mcr.microsoft.com/dotnet/sdk:5.0

RUN wget https://aka.ms/getvsdbgsh && \
    sh getvsdbgsh -v latest  -l /vsdbg

Kontejner musí mít na místním počítači vytvořenou image. Kontejner můžete vytvořit pomocí příkazu docker build -t <docker image name> -f <path to Dockerfile> . . Nezapomeňte zahrnout tečku . na konci příkazu.

Následující příklad ukazuje použití dockerFile vlastnosti místo dockerImage vlastnosti.

{
    "version": "1",
    "environments": [
        {
            "name": "GitServiceUnix",
            "type": "docker",
            "dockerFile": "Dockerfile.test"
        }
    ]
}

Místní připojení WSL2

Pokud chcete vzdáleně spouštět testy na WSL2, musíte povolit integraci WSL2 na místním počítači.

Prostředí lze zadat v souboru testEnvironments.json v kořenovém adresáři vašeho řešení pomocí následujícího schématu. <Ubuntu> Nahraďte hodnotu wslDistribution vlastnosti instalací WSL2 Distribution.

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

Připojení SSH

Připojení SSH můžete přidávat nebo odebírat v > nástrojích možnosti > pro různé platformy > Správce připojení. Vyberte Přidat a zadejte název hostitele, port a všechny přihlašovací údaje, které potřebujete.

Prostředí lze zadat v souboru testEnvironments.json v kořenovém adresáři vašeho řešení pomocí následujícího schématu. <ssh://user@hostname:22> Nahraďte hodnotu remoteUri vlastnosti hodnotou SSH.

{
    "version": "1",
    "environments": [
        {
            "name": "ssh-remote",
            "type": "ssh",
            "remoteUri": "ssh://user@hostname:22"
        }
    ]
}

Požadavky pro vzdálené prostředí Windows

Projděte si následující požadavky pro vzdálené prostředí Windows.

  1. Ujistěte se, že je na vzdáleném počítači povolený systém souborů Windows Projected. Z okna PowerShellu pro správce můžete spustit následující kód, abyste ho povolili:

     Enable-WindowsOptionalFeature -Online -FeatureName Client-ProjFS -NoRestart
    

    Podle potřeby restartujte prostředí.

  2. Ujistěte se, že je nastavený protokol SSH. Postup najdete v tématu Instalace OpenSSH. Spusťte server SSH spuštěním následujícího příkazu z okna PowerShellu pro správce:

    Start-Service sshd
    
  3. Ujistěte se, že je nainstalovaný příslušný modul runtime .NET vyžadovaný vašimi testy. .NET pro Windows si můžete stáhnout.

  4. Příprava prostředí pro ladění testů:

    1. Nainstalujte skladovou položku Nástrojů Remote Tools do vzdáleného prostředí.

    2. Spusťte vzdálený ladicí program jako správce a ujistěte se, že má uživatel sady Visual Studio oprávnění k připojení.

Požadavky pro vzdálené linuxové prostředí

Projděte si následující požadavky pro vzdálené linuxové prostředí.

  1. Ujistěte se, že je ssh nakonfigurovaný a spuštěný.

  2. Nainstalujte fuse3 pomocí správce balíčků.

  3. Ujistěte se, že je ve vzdáleném linuxovém prostředí nainstalovaný příslušný modul runtime .NET vyžadovaný vašimi testy.

Použití Průzkumníka testů ke spuštění a ladění vzdálených testů

Tady je postup, jak pomocí Průzkumníka testů spustit a ladit vzdálené testy prostředí.

  • Aktivní prostředí je vybráno prostřednictvím rozevíracího seznamu na panelu nástrojů Průzkumníka testů. V současné době může být aktivní jenom jedno testovací prostředí.

    Rozevírací seznam prostředí pro vzdálené testování v Průzkumníku testů

  • Po výběru prostředí se testy zjistí a spustí v novém prostředí.

    Testy se zjistí a spustí ve vzdálených prostředích.

  • Testy teď můžete spouštět uvnitř vzdáleného prostředí a ladit testy v prostředích.

    Zobrazení výsledků testů ze vzdáleného prostředí v průzkumníku testů

  • Průzkumník testů vás může vyzvat k instalaci některých chybějících součástí prostředí a pokusu o instalaci chybějících závislostí. Většina zřizování vzdáleného prostředí je však až do specifikace uživatele.