Laporan pengujian

Fitur-fitur ini memerlukan penginstalan paket NuGet tambahan, seperti yang dijelaskan di setiap bagian.

Petunjuk / Saran

Saat menggunakan Microsoft.Testing.Platform.MSBuild (disertakan secara transitif oleh runner MSTest, NUnit, dan xUnit), ekstensi ini didaftarkan secara otomatis saat Anda menginstal paket NuGet mereka — tidak ada perubahan kode yang diperlukan. Pendaftaran manual yang ditentukan dalam artikel ini hanya diperlukan jika Anda menonaktifkan titik masuk yang dihasilkan secara otomatis dengan mengatur <GenerateTestingPlatformEntryPoint>false</GenerateTestingPlatformEntryPoint>.

Nama berkas laporan

Setiap ekstensi laporan menulis filenya ke direktori hasil pengujian, yang dapat Anda atur dengan --results-directory opsi . Untuk mengganti nama, gunakan opsi --report-*-filename yang sesuai. Setiap bagian laporan mencantumkan nama default untuk laporan tersebut.

Nama file dapat menyertakan jalur relatif yang tetap berada dalam direktori hasil pengujian, dan dapat menggunakan item pengganti berikut (tempat penampung):

Tempat penampung Deskripsi
{asm} Nama rakitan entri, atau unknown ketika tidak tersedia.
{tfm} Moniker kerangka kerja target terdeteksi saat runtime, seperti net9.0.
{arch} Arsitektur proses, seperti x64, x86, atau arm64.
{pname} Nama Proses.
{pid} ID Proses.
{time} Tanda waktu presisi tinggi.

Misalnya, --report-trx-filename "{asm}_{tfm}_{arch}.trx" menampilkan kembali nama TRX bawaan.

Nota

Nama placeholder peka terhadap huruf besar/kecil dan menggunakan huruf kecil. Dukungan placeholder untuk nama file laporan tersedia di MTP mulai versi 2.3.0.

Visual Studio laporan pengujian (TRX)

File hasil pengujian Visual Studio (atau TRX) adalah format default untuk menerbitkan hasil pengujian. Ekstensi ini memerlukan paket NuGet Microsoft.Testing.Extensions.TrxReport .

Pendaftaran manual

var builder = await TestApplication.CreateBuilderAsync(args);
builder.AddTrxReportProvider();

Nota

Saat menggunakan pendaftaran manual, pastikan untuk terakhir mendaftarkan penyedia laporan TRX. Implementasi saat ini tergantung pada urutan pendaftaran, jadi mendaftarkannya setelah semua ekstensi lain memastikannya menangkap semua data pengujian.

Nota

Tersedia di MTP yang dimulai dengan versi 1.9.0, laporan TRX menyertakan bidang pengujian Description .

Nota

Tersedia di MTP mulai versi 2.3.0, hasil TRX ditulis ke disk secara bertahap seiring eksekusi berlangsung. Jika host pengujian crash, file TRX menyimpan hasil yang dikumpulkan sebelum crash.

Opsi

Option Deskripsi
--report-trx Menghasilkan laporan TRX.
--report-trx-filename Nama laporan TRX yang dihasilkan. Dimulai dengan MTP 2.3.0, defaultnya adalah bentuk deterministik {asm}_{tfm}_{arch}.trx ; sebelum MTP 2.3.0, defaultnya adalah <UserName>_<MachineName>_<yyyy-MM-dd_HH_mm_ss.fffffff>.trx. Untuk mengkustomisasi nama, lihat Melaporkan nama file.

Laporan disimpan di dalam folder TestResults default yang dapat ditentukan melalui argumen baris perintah --results-directory.

Laporan HTML

Laporan HTML membuat file HTML interaktif dan mandiri untuk sesi pengujian. Ekstensi ini memerlukan paket NuGet Microsoft.Testing.Extensions.HtmlReport.

Nota

Tersedia di MTP yang dimulai dengan versi 2.3.0. Ekstensi ini bersifat eksperimental, dan opsi dan format outputnya mungkin berubah dalam versi yang akan datang.

Pendaftaran manual

var builder = await TestApplication.CreateBuilderAsync(args);
builder.AddHtmlReportProvider();

Opsi

Option Deskripsi
--report-html Menghasilkan laporan HTML.
--report-html-filename Nama laporan HTML yang dihasilkan. Nilai harus diakhir dengan .html. Defaultnya adalah {asm}_{tfm}_{arch}.html. Untuk mengkustomisasi nama, lihat Melaporkan nama file. Membutuhkan --report-html.

Laporan JUnit

Laporan JUnit membuat file XML yang kompatibel dengan JUnit untuk sesi pengujian. Ekstensi ini memerlukan paket NuGet Microsoft.Testing.Extensions.JUnitReport.

Nota

Tersedia di MTP yang dimulai dengan versi 2.3.0. Ekstensi ini bersifat eksperimental, dan opsi dan format outputnya mungkin berubah dalam versi yang akan datang.

Pendaftaran manual

var builder = await TestApplication.CreateBuilderAsync(args);
builder.AddJUnitReportProvider();

Opsi

Option Deskripsi
--report-junit Menghasilkan laporan XML JUnit.
--report-junit-filename Nama laporan XML JUnit yang dihasilkan. Nilai harus diakhir dengan .xml. Defaultnya adalah {asm}_{tfm}_{arch}.xml. Untuk mengkustomisasi nama, lihat Melaporkan nama file. Membutuhkan --report-junit.

Laporan CTRF

Laporan CTRF membuat file JSON yang menggunakan Format Laporan Pengujian Umum untuk sesi pengujian. Ekstensi ini memerlukan paket NuGet Microsoft.Testing.Extensions.CtrfReport.

Nota

Tersedia di MTP yang dimulai dengan versi 2.3.0. Ekstensi ini bersifat eksperimental, dan opsi dan format outputnya mungkin berubah dalam versi yang akan datang.

Pendaftaran manual

var builder = await TestApplication.CreateBuilderAsync(args);
builder.AddCtrfReportProvider();

Opsi

Option Deskripsi
--report-ctrf Menghasilkan laporan JSON CTRF.
--report-ctrf-filename Nama laporan CTRF JSON yang dihasilkan. Nilai harus diakhir dengan .json. Defaultnya adalah <UserName>_<MachineName>_<assembly>_<tfm>_<timestamp>.ctrf.json. Untuk mengkustomisasi nama, lihat Melaporkan nama file. Membutuhkan --report-ctrf.

laporan Azure DevOps

Azure DevOps plugin pelaporan meningkatkan pelaksanaan uji untuk pengembang yang menghosting kode mereka di GitHub, tetapi menggunakan agen pembangun di Azure DevOps. Ini menambahkan informasi tambahan ke kegagalan untuk menunjukkan kegagalan langsung di GitHub PR.

anotasi Error dalam tampilan file PR GitHub

Ekstensi ini memerlukan paket NuGet Microsoft.Testing.Extensions.AzureDevOpsReport .

Pendaftaran manual

var builder = await TestApplication.CreateBuilderAsync(args);
builder.TestHost.AddAzureDevOpsProvider();

Opsi

Option Versi MTP Deskripsi
--report-azdo 1.9.0 Mengaktifkan generator laporan Azure DevOps. Kesalahan dan peringatan ditulis ke output dalam format yang Azure DevOps pahami.
--report-azdo-severity 1.9.0 Tingkat keparahan yang digunakan untuk peristiwa yang dilaporkan. Nilai yang valid adalah error (default) dan warning.
--report-azdo-flaky-history 2.3.0 Membuat kueri terhadap riwayat hasil pengujian Azure DevOps untuk N hari terakhir (1–90) dan menganotasi kegagalan yang dilaporkan dengan konteks ketidakstabilan pengujian. Membutuhkan --report-azdo.
--report-azdo-demote-known-flaky 2.3.0 Menurunkan status kegagalan yang cukup tidak stabil dalam jendela riwayat Azure DevOps (ambang batas default adalah 25%) dari error menjadi peringatan. Memerlukan --report-azdo dan --report-azdo-flaky-history.
--report-azdo-quarantine-file 2.3.0 Jalur ke file teks yang mencantumkan nama atau pola glob yang sepenuhnya memenuhi syarat pengujian yang dikarantina. Kegagalan pencocokan dilaporkan sebagai peringatan. Membutuhkan --report-azdo.
--report-azdo-summary 2.3.0 Menulis ringkasan pekerjaan Markdown di akhir eksekusi pengujian dan mengunggahnya melalui ##vso[task.uploadsummary]. Argumen opsional berupa jalur file menggantikan lokasi default ({testResultsDir}/azdo-summary-{tfm}.md). Membutuhkan --report-azdo.
--report-azdo-stackframe-filter 2.3.0 Menambahkan pola regex yang dicocokkan dengan awalan tipe yang memenuhi syarat secara lengkap dari setiap frame stack, yang akan dilewati saat ekstensi menemukan lokasi pemanggilan pengguna untuk diberi anotasi. Opsi ini dapat diulang, hingga 16 pola, dan setiap pola dikompilasi dengan batas waktu pertandingan 500 ms. Pola-pola ini bersifat aditif pada awalan implementasi pernyataan MSTest bawaan ekstensi. Membutuhkan --report-azdo.
--report-azdo-upload-artifacts 2.3.0 Mengunggah file hasil pengujian dan/atau menambahkan tag build ke Azure DevOps. Nilai yang valid adalah off (default), tags-only, files, dan all.
--report-azdo-upload-artifact-include 2.3.0 Menyertakan file dalam unggahan artefak Azure DevOps menggunakan pola glob relatif terhadap direktori hasil pengujian. Secara default menjadi **/*. --report-azdo-upload-artifacts Harus berupa nilai selain off.
--report-azdo-upload-artifact-exclude 2.3.0 Mengecualikan file dari pengunggahan artefak Azure DevOps menggunakan pola glob relatif terhadap direktori hasil pengujian. --report-azdo-upload-artifacts Harus berupa nilai selain off.
--report-azdo-upload-artifact-name 2.3.0 Mengambil alih nama kontainer artefak Azure DevOps. Secara default menjadi TestResults_{assemblyName}_{tfm}. --report-azdo-upload-artifacts Harus berupa nilai selain off.
--publish-azdo-test-results 2.3.0 Menerbitkan hasil pengujian secara langsung ke tab Azure DevOps Tests.
--publish-azdo-run-name 2.3.0 Mengatur nama uji coba Azure DevOps kustom untuk penerbitan hasil pengujian langsung. Membutuhkan --publish-azdo-test-results.

Nota

Kolom versi MTP mencantumkan rilis MTP di mana setiap opsi pertama kali tersedia dalam build yang stabil. Ekstensi Azure DevOps itu sendiri menjadi stabil di MTP 1.9.0 dengan --report-azdo dan --report-azdo-severity; opsi yang tersisa ditambahkan dalam MTP 2.3.0.

Ekstensi secara otomatis mendeteksi bahwa ekstensi berjalan di lingkungan integrasi berkelanjutan (CI) dengan memeriksa TF_BUILD variabel lingkungan.

laporan GitHub Actions

Laporan GitHub Actions menghasilkan perintah alur kerja bawaan GitHub Actions sehingga eksekusi pengujian memberikan pengalaman yang optimal di runner: grup log per assembly, anotasi pengujian yang gagal dan yang dilewati (ditampilkan di tab alur kerja Annotations dan, saat lokasi sumber berhasil ditentukan, pada diff Files changed di pull request), ringkasan job dalam Markdown yang ditambahkan ke file yang dirujuk oleh GITHUB_STEP_SUMMARY, dan notifikasi pengujian lambat.

Ekstensi diaktifkan hanya ketika proses dijalankan di GitHub Actions (variabel lingkungan GITHUB_ACTIONS bernilai true) dan opsi --report-gh diaktifkan; jika tidak, ekstensi tidak melakukan apa pun. Saat aktif, setiap fitur diaktifkan secara default dan dapat dinonaktifkan satu per satu dengan opsinya --report-gh-* .

Nota

Tersedia di MTP yang dimulai dengan versi 2.3.0. Ekstensi ini bersifat eksperimental, dan opsi dan format outputnya mungkin berubah dalam versi yang akan datang.

Pendaftaran manual

var builder = await TestApplication.CreateBuilderAsync(args);
builder.AddGitHubActionsProvider();

Opsi

Option Versi MTP Deskripsi
--report-gh 2.3.0 Mengaktifkan generator laporan GitHub Actions agar pengujian menghasilkan perintah workflow. Mengharuskan eksekusi dijalankan di GitHub Actions.
--report-gh-groups 2.3.0 Mengaktifkan atau menonaktifkan kelompok log untuk setiap rakitan. Nilai yang valid adalah on (default) dan off. Membutuhkan --report-gh.
--report-gh-annotations 2.3.0 Mengaktifkan atau menonaktifkan anotasi untuk pengujian yang gagal dan dilewati. Nilai yang valid adalah on (default) dan off. Membutuhkan --report-gh.
--report-gh-step-summary 2.3.0 Mengaktifkan atau menonaktifkan penulisan ringkasan pekerjaan Markdown ke file yang dirujuk oleh GITHUB_STEP_SUMMARY. Nilai yang valid adalah on (default) dan off. Membutuhkan --report-gh.
--report-gh-slow-test-notices 2.3.0 Mengaktifkan atau menonaktifkan pemberitahuan pengujian lambat. Nilai yang valid adalah on (default) dan off. Membutuhkan --report-gh.
--report-gh-slow-test-threshold 2.3.0 Lama waktu pengujian dapat berlangsung sebelum notifikasi pengujian lambat ditampilkan. Menerima jumlah detik kosong atau nilai dengan akhiran unit seperti 90s, , 2matau 1.5h. Defaultnya adalah 60s. Membutuhkan --report-gh.