Bagikan melalui


Pengujian Jarak Jauh (pratinjau eksperimental)

Pengujian jarak jauh memungkinkan pengembang untuk menyambungkan Visual Studio 2022 ke lingkungan jarak jauh untuk menjalankan dan men-debug pengujian. Fungsionalitas ini berguna untuk pengembang lintas platform yang menyebarkan kode ke beberapa lingkungan target yang berbeda seperti sistem operasi Windows atau Linux yang berbeda. Misalnya, biasanya pengembang mendorong perubahan pada alur CI untuk mendapatkan umpan balik dari pengujian yang berjalan di Linux. Dengan fitur pengujian jarak jauh, Anda dapat menjalankan pengujian Linux langsung dari Visual Studio dengan menghubungkan Test Explorer ke lingkungan jarak jauh.

Persyaratan

Persyaratan berikut berlaku untuk versi eksperimental pengujian jarak jauh:

  • Anda harus menjalankan Visual Studio 2022 Update 17.0 Pratinjau 3 atau yang lebih baru.

  • Saat ini, fitur ini hanya mendukung pengujian .NET dan .NET Framework.

  • Saat ini, fitur ini mendukung gambar Windows, Ubuntu, dan Debian di lingkungan jarak jauh. Untuk .NET Framework, hanya lingkungan Windows jarak jauh yang didukung.

  • Saat ini, sebagian besar provisi lingkungan diserahkan ke spesifikasi pengguna.

    Pengguna harus menginstal dependensi yang diperlukan di lingkungan target. Misalnya, jika pengujian Anda menargetkan .NET 6.0, Anda perlu memastikan kontainer telah menginstal .NET 6.0 melalui Dockerfile Anda. Mungkin ada permintaan untuk menginstal .NET Core di lingkungan jarak jauh, yang diperlukan untuk menjalankan dan menemukan pengujian dari jarak jauh.

  • Rencanakan untuk memantau status koneksi Anda ke lingkungan jarak jauh dengan menggunakan panel Uji Output>.

    Misalnya, jika kontainer berhenti, pesan muncul di panel Uji Output>. Fitur ini mungkin tidak mendeteksi semua skenario, jadi rencanakan untuk memeriksa output Anda jika terlihat koneksi hilang. Secara khusus, jika panel Output tidak diatur ke "Uji," Anda mungkin tidak segera melihat pesan. Jika koneksi hilang, Anda dapat menggunakan drop-down lingkungan di Test Explorer untuk mengatur koneksi kembali ke lingkungan lokal Anda lalu memilih lingkungan jarak jauh lagi untuk terhubung kembali.

Menyiapkan lingkungan pengujian jarak jauh

Lingkungan ditentukan dengan menggunakan file testenvironments.json di akar solusi Anda. Struktur file json mengimplementasikan skema berikut:

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

Properti lingkungan di testenvironments.json

File testenvironments.json memiliki properti lingkungan berikut.

Properti Tipe Deskripsi
name string Nama lingkungan yang mudah digunakan yang muncul di Test Explorer. Ini harus unik dalam file testEnvironments.json .
localRoot string [Opsional] Jalur pada komputer lokal (absolut atau relatif terhadap direktori solusi), yang diproyeksikan ke lingkungan jarak jauh. Jika tidak ditentukan, nilai default adalah akar repositori dalam konteks repositori git (pada Visual Studio 2022 versi 17.1 dan yang lebih baru). Di luar repositori git, nilai defaultnya adalah direktori solusi.
type enum Menunjukkan jenis lingkungan jarak jauh. Nilainya dapat berupa docker, , wslatau ssh.
dockerImage string Nama gambar Docker untuk dimuat di lingkungan Docker.
Nilai ini diperlukan jika lingkungan type adalah docker.
dockerFile string Jalur ke file Docker, relatif terhadap direktori solusi, untuk membangun gambar dan memuat di lingkungan Docker.
Nilai ini diperlukan jika lingkungan type adalah docker.
wslDistribution string Nama distribusi WSL lokal untuk menjalankan lingkungan pengujian.
Nilai ini diperlukan jika lingkungan type adalah wsl.
remoteUri string Uri yang menentukan koneksi ke komputer jarak jauh. Contohnya,ssh://user@hostname:22.
Nilai ini diperlukan jika lingkungan type adalah ssh.

Catatan

Anda harus menentukan dockerImage properti atau dockerFile , tetapi bukan kedua properti.

Koneksi kontainer lokal

Untuk menyambungkan ke kontainer yang berjalan secara lokal, Anda harus memiliki Docker Desktop di komputer lokal Anda. Secara opsional, aktifkan integrasi WSL2 untuk performa yang lebih baik.

Untuk Dockerfile, lingkungan dapat ditentukan dalam file testEnvironments.json di akar solusi Anda. Ini menggunakan properti berikut:

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

Contoh berikut menunjukkan file testenvironments.json untuk gambar kontainer lokal bernama <mcr.microsoft.com/dotnet/core/sdk>.

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

Contoh berikut menunjukkan Dockerfile untuk menjalankan pengujian yang menargetkan .NET 5.0. Baris kedua memastikan debugger dapat terhubung dan berjalan di kontainer Anda.

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

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

Kontainer harus memiliki gambar bawaan di komputer lokal Anda. Anda dapat membuat kontainer dengan perintah docker build -t <docker image name> -f <path to Dockerfile> . Pastikan untuk menyertakan periode . di akhir perintah.

Contoh berikut menunjukkan penggunaan dockerFile properti alih-alih dockerImage properti .

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

Koneksi WSL2 lokal

Untuk menjalankan pengujian dari jarak jauh pada WSL2, Anda harus mengaktifkan integrasi WSL2 pada komputer lokal Anda.

Lingkungan dapat ditentukan dalam file testEnvironments.json di akar solusi Anda dengan menggunakan skema berikut. <Ubuntu> Ganti nilai wslDistribution properti dengan penginstalan Distribusi WSL2 Anda.

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

Koneksi SSH

Anda dapat menambahkan atau menghapus koneksi SSH di Opsi > Alat > Lintas Platform > Pengelola Sambungan. Pilih Tambahkan untuk memasukkan nama host, port, dan kredensial apa pun yang Anda butuhkan.

Lingkungan dapat ditentukan dalam file testEnvironments.json di akar solusi Anda dengan menggunakan skema berikut. <ssh://user@hostname:22> Ganti nilai remoteUri properti dengan nilai SSH Anda.

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

Prasyarat untuk lingkungan Windows jarak jauh

Tinjau prasyarat berikut untuk lingkungan Windows jarak jauh.

  1. Pastikan Sistem File Yang Diproyeksikan Windows diaktifkan pada komputer jarak jauh. Anda bisa menjalankan kode berikut dari jendela Admin PowerShell untuk mengaktifkannya:

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

    Mulai ulang lingkungan sesuai kebutuhan.

  2. Pastikan SSH disiapkan. Anda dapat meninjau langkah-langkah di Menginstal OpenSSH. Mulai server SSH dengan menjalankan perintah berikut dari jendela Admin PowerShell:

    Start-Service sshd
    
  3. Pastikan runtime .NET yang sesuai yang diperlukan oleh pengujian Anda diinstal. Anda dapat mengunduh .NET untuk Windows.

  4. Siapkan lingkungan untuk pengujian penelusuran kesalahan:

    1. Instal SKU Alat jarak jauh di lingkungan jarak jauh.

    2. Mulai debugger jarak jauh sebagai admin dan pastikan pengguna Visual Studio memiliki izin untuk tersambung.

Prasyarat untuk lingkungan Linux jarak jauh

Tinjau prasyarat berikut untuk lingkungan Linux jarak jauh.

  1. Pastikan ssh dikonfigurasi dan berjalan.

  2. Instal fuse3 dengan menggunakan manajer paket.

  3. Pastikan runtime .NET yang sesuai yang diperlukan oleh pengujian Anda diinstal pada lingkungan Linux jarak jauh.

Menggunakan Test Explorer untuk menjalankan dan men-debug pengujian jarak jauh

Berikut cara menggunakan Test Explorer untuk menjalankan dan men-debug pengujian lingkungan jarak jauh Anda.

  • Lingkungan aktif dipilih melalui turun-bawah di bilah alat Penjelajah Uji. Saat ini, hanya satu lingkungan pengujian yang dapat aktif pada satu waktu.

    Drop-down lingkungan pengujian jarak jauh di Test Explorer

  • Setelah Anda memilih lingkungan, pengujian ditemukan dan dijalankan di lingkungan baru.

    Pengujian ditemukan dan dijalankan di lingkungan jarak jauh

  • Anda sekarang dapat menjalankan pengujian di dalam remote dan men-debug pengujian Anda di lingkungan!

    Melihat hasil pengujian dari lingkungan jarak jauh di penjelajah pengujian

  • Test Explorer dapat meminta Anda menginstal beberapa prasyarat lingkungan yang hilang dan mencoba menginstal dependensi yang hilang. Namun, sebagian besar provisi lingkungan jarak jauh hingga spesifikasi pengguna.