Bagikan melalui


Pemecahan masalah Microsoft.Testing.Platform

Artikel ini berisi panduan pemecahan masalah untuk Microsoft.Testing.Platform.

Kode keluaran

Microsoft.Testing.Platform menggunakan kode keluar yang diketahui untuk mengomunikasikan kegagalan pengujian atau kesalahan aplikasi. Kode keluar dimulai dari 0 dan tidak negatif.

Kode keluar Detail lebih lanjut
0 Kode 0 keluar menunjukkan keberhasilan. Semua pengujian yang dipilih untuk dijalankan hingga selesai dan tidak ada kesalahan.
1 Kode 1 keluar menunjukkan kesalahan yang tidak diketahui dan bertindak sebagai penampung semua. Untuk menemukan informasi dan detail kesalahan tambahan, periksa pada output.
2 Kode keluar digunakan 2 untuk menunjukkan bahwa setidaknya ada satu kegagalan pengujian.
3 Kode 3 keluar menunjukkan bahwa sesi pengujian dibatalkan. Sesi dapat dibatalkan menggunakan Ctrl+C, sebagai contoh.
4 Kode 4 keluar menunjukkan bahwa penyiapan ekstensi yang digunakan tidak valid dan sesi pengujian tidak dapat berjalan.
5 Kode 5 keluar menunjukkan bahwa argumen baris perintah yang diteruskan ke aplikasi pengujian tidak valid.
6 (tidak lagi digunakan) Kode keluar 6 tidak lagi diproduksi oleh platform, sebelumnya digunakan untuk menunjukkan bahwa sesi pengujian menggunakan fitur yang belum diimplementasikan.
7 Kode 7 keluar menunjukkan bahwa sesi pengujian tidak berhasil diselesaikan, dan kemungkinan crash. Ada kemungkinan bahwa ini disebabkan oleh sesi pengujian yang dijalankan melalui titik ekstensi pengontrol pengujian.
8 Kode 8 keluar menunjukkan bahwa sesi pengujian menjalankan tes nol.
9 Kode 9 keluar menunjukkan bahwa kebijakan eksekusi minimum untuk pengujian yang dijalankan dilanggar.
10 Kode 10 keluar menunjukkan bahwa adaptor pengujian, Testing.Platform Test Framework, MSTest, NUnit, atau xUnit, gagal menjalankan pengujian karena alasan infrastruktur yang tidak terkait dengan diri pengujian. Contohnya adalah gagal membuat perlengkapan yang diperlukan oleh pengujian.
11 Kode 11 keluaran menunjukkan bahwa proses pengujian akan berhenti jika proses yang bergantung berhenti.
12 Kode 12 keluar menunjukkan bahwa sesi pengujian tidak dapat dijalankan karena klien tidak mendukung versi protokol yang didukung.
13 Kode 13 keluar menunjukkan bahwa sesi pengujian dihentikan karena mencapai jumlah pengujian maksimum yang gagal yang ditentukan menggunakan --maximum-failed-tests opsi baris perintah. Untuk informasi selengkapnya, lihat bagian Opsi di referensi opsi CLI Microsoft.Testing.Platform

Untuk mengaktifkan pencatatan log rinci dan memecahkan masalah, lihat pencatatan diagnostik.

Abaikan kode keluar tertentu

Microsoft.Testing.Platform dirancang agar ketat secara default tetapi memungkinkan konfigurasi. Dengan demikian, pengguna dapat memutuskan kode keluar mana yang harus diabaikan (kode 0 keluar akan dikembalikan alih-alih kode keluar asli).

Untuk mengabaikan kode keluar tertentu, gunakan --ignore-exit-code opsi baris perintah atau TESTINGPLATFORM_EXITCODE_IGNORE variabel lingkungan. Format valid yang diterima adalah daftar kode keluar yang dipisahkan titik koma untuk diabaikan (misalnya, --ignore-exit-code 2;3;8). Skenario umum adalah mempertimbangkan bahwa kegagalan pengujian tidak boleh mengakibatkan kode keluar nonzero (yang sesuai dengan mengabaikan kode 2keluar ).

Log diagnostik

Platform ini menyediakan pembuatan log diagnostik bawaan untuk membantu Anda memecahkan masalah eksekusi pengujian. Anda dapat mengaktifkan pengelogan diagnostik melalui opsi baris perintah atau variabel lingkungan.

Opsi baris perintah

Opsi platform berikut memberikan informasi yang berguna untuk memecahkan masalah aplikasi pengujian Anda:

  • --info
  • --diagnostic
  • --diagnostic-synchronous-write
  • --diagnostic-verbosity
  • --diagnostic-file-prefix
  • --diagnostic-output-directory

Variabel lingkungan

Anda juga dapat mengaktifkan log diagnostik menggunakan variabel lingkungan:

Nama variabel lingkungan Deskripsi
TESTINGPLATFORM_DIAGNOSTIC Jika diatur ke 1, mengaktifkan pembuatan log diagnostik.
TESTINGPLATFORM_DIAGNOSTIC_VERBOSITY Menentukan tingkat verbositas. Nilai yang tersedia adalah Trace, Debug, Information, Warning, Error, atau Critical.
TESTINGPLATFORM_DIAGNOSTIC_OUTPUT_DIRECTORY Direktori keluaran untuk pencatatan diagnostik, jika tidak ditentukan, file akan dihasilkan dalam direktori default TestResults.
TESTINGPLATFORM_DIAGNOSTIC_OUTPUT_FILEPREFIX Awalan untuk nama file log. Secara default menjadi "log_".
TESTINGPLATFORM_DIAGNOSTIC_FILELOGGER_SYNCHRONOUSWRITE Memaksa pencatat file bawaan untuk menulis log secara sinkron. Berguna untuk skenario di mana Anda tidak ingin kehilangan entri log apa pun (jika proses crash). Ini memperlambat eksekusi pengujian.

Nota

Variabel lingkungan lebih diutamakan daripada argumen baris perintah.

Mengatasi kesalahan konfigurasi

Microsoft.Testing.Platform.MSBuild

Berikut ini adalah kesalahan konfigurasi umum yang terkait dengan Microsoft.Testing.Platform.MSBuild.

kesalahan CS8892: Metode 'TestingPlatformEntryPoint.Main(string[])' tidak akan digunakan sebagai titik masuk karena titik masuk sinkron 'Program.Main(string[])' ditemukan

Menentukan titik masuk secara manual (Main) dalam proyek pengujian atau mereferensikan proyek pengujian dari aplikasi yang sudah memiliki titik masuk menghasilkan konflik dengan titik masuk yang dihasilkan oleh Microsoft.Testing.Platform. Untuk menghindari masalah ini, lakukan salah satu langkah berikut:

  • Hapus titik masuk yang ditentukan secara manual, biasanya Main metode di Program.cs, dan biarkan platform pengujian menghasilkannya untuk Anda.

  • Nonaktifkan pembuatan titik masuk dengan mengatur properti <GenerateTestingPlatformEntryPoint>false</GenerateTestingPlatformEntryPoint> MSBuild.

  • Nonaktifkan dependensi transitif sepenuhnya ke Microsoft.Testing.Platform.MSBuild dengan mengatur properti MSBuild <IsTestingPlatformApplication>false</IsTestingPlatformApplication> dalam proyek yang mereferensikan proyek pengujian. Ini diperlukan saat Anda mereferensikan proyek pengujian dari proyek non-pengujian, misalnya, aplikasi konsol yang mereferensikan aplikasi pengujian.

Microsoft.Testing.Extensions.Fakes

Kesalahan palsu Gagal mengatasi jalur profiler dari variabel lingkungan COR_PROFILER_PATH dan COR_PROFILER

Kesalahan ini dapat terjadi jika tidak semua rakitan Palsu ada di folder bin.

  • Pastikan bahwa proyek menggunakan MSTest.SDK atau referensi Microsoft.Testing.Extensions.Fakes.
  • Untuk proyek .NET Framework, hindari pengaturan <PlatformTarget>AnyCPU</PlatformTarget> karena ini menghasilkan NuGet tidak menyalin semua file ke folder bin.