Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
MTP mendukung penggunaan file konfigurasi dan variabel lingkungan untuk mengonfigurasi perilaku platform pengujian. Artikel ini menjelaskan pengaturan konfigurasi yang dapat Anda gunakan untuk mengonfigurasi platform pengujian.
testconfig.json
Platform pengujian menggunakan file konfigurasi bernama [appname].testconfig.json untuk mengonfigurasi perilaku platform pengujian. File testconfig.json adalah file JSON yang berisi pengaturan konfigurasi untuk platform pengujian.
File testconfig.json memiliki struktur berikut:
{
"platformOptions": {
"resultDirectory": "./TestResults"
}
}
Platform akan secara otomatis mendeteksi dan memuat file.testconfig.json [appname] yang terletak di direktori output proyek pengujian (dekat dengan yang dapat dieksekusi).
Saat menggunakan Microsoft.Testing.Platform.MSBuild, Anda cukup membuat file testconfig.json yang akan secara otomatis diganti namanya menjadi [nama aplikasi].testconfig.json dan dipindahkan ke direktori output proyek pengujian.
Dimulai dengan MTP 1.5, Anda dapat menggunakan argumen --config-file baris perintah untuk menentukan jalur ke testconfig.json. File ini lebih diutamakan daripada file.testconfig.json [appname].
Nota
File.testconfig.json [appname] akan ditimpa pada build berikutnya.
Menggunakan testconfig.json terpusat
Jika Anda ingin satu testconfig.json dibagikan di beberapa proyek pengujian, Anda dapat menempatkannya di lokasi pusat dan meneruskannya melalui --config-file. Saat MSBuild tersedia (misalnya, dotnet test atau dotnet run), Anda dapat menggunakan TestingPlatformCommandLineArguments properti MSBuild untuk meneruskan argumen secara otomatis. Menambahkan ini ke Directory.Build.props di akar repositori memastikan semua proyek pengujian menggunakan konfigurasi yang sama:
<PropertyGroup>
<TestingPlatformCommandLineArguments>
$(TestingPlatformCommandLineArguments) --config-file $(MSBuildThisFileDirectory)testconfig.json
</TestingPlatformCommandLineArguments>
</PropertyGroup>
Urutan prioritas konfigurasi
Ketika pengaturan yang sama dapat ditentukan dalam beberapa cara, MTP menyelesaikannya dalam urutan berikut (kemenangan pertandingan pertama):
- Argumen baris perintah (misalnya,
--results-directory) - Variabel lingkungan
- testconfig.json setelan
- Setelan bawaan
Pilihan platform
Bagian platformOptions file testconfig.json mengonfigurasi perilaku inti platform pengujian. Tabel berikut ini mencantumkan semua opsi platform yang didukung:
| Entri | Default | Description |
|---|---|---|
resultDirectory |
TestResults |
Direktori tempat hasil pengujian ditempatkan. Dapat berupa jalur relatif (diselesaikan dari direktori kerja saat ini) atau jalur absolut. Opsi --results-directory baris perintah lebih diutamakan. |
exitProcessOnUnhandledException |
false |
Ketika diatur ke true, proses host uji langsung keluar saat terjadi pengecualian yang tidak tertangani, alih-alih memungkinkan proses dimatikan secara normal. Variabel TESTINGPLATFORM_EXIT_PROCESS_ON_UNHANDLED_EXCEPTION lingkungan (nilai 1 atau 0) lebih diutamakan. |
Nota
Opsi platform internal tambahan ada untuk skenario lanjutan (seperti batas waktu pipa bernama untuk pengontrol host pengujian). Opsi ini ditujukan untuk penggunaan infrastruktur dan tidak tercakup di sini.
Contoh:
{
"platformOptions": {
"resultDirectory": "../../TestResults",
"exitProcessOnUnhandledException": false
}
}
Variabel lingkungan dalam testconfig.json
Nota
Tersedia di MTP yang dimulai dengan versi 2.3.0.
Bagian ini environmentVariables mengatur variabel lingkungan untuk proses pengujian sebelum dimulai. Gunakan nilai string untuk setiap variabel.
{
"environmentVariables": {
"DOTNET_ENVIRONMENT": "Development",
"FEATURE_FLAG": "true"
}
}
Opsi CLI di testconfig.json
Sebelum MTP 2.3.0, fitur ekstensi seperti crash dump, hang dump, coba lagi, laporan TRX, dan cakupan kode tidak dapat dikonfigurasi melalui testconfig.json. Fitur-fitur ini dikonfigurasi secara eksklusif melalui argumen baris perintah.
Dimulai dengan MTP 2.3.0, MTP dapat membaca opsi CLI dari testconfig.json melalui IConfiguration. Dukungan ini mencakup opsi ekstensi, sehingga Anda dapat menggunakan entri JSON untuk opsi yang tidak ingin Anda teruskan pada baris perintah setiap eksekusi. Argumen baris perintah masih diutamakan.
Untuk referensi lengkap opsi baris perintah, lihat Referensi opsi MTP CLI.
Menguji pengaturan khusus kerangka kerja
Kerangka kerja pengujian dapat menentukan bagian konfigurasi mereka sendiri dalam file testconfig.json . Lihat dokumentasi untuk kerangka kerja pengujian Anda:
- MSTest: Mengonfigurasi MSTest — testconfig.json
- xUnit.net v3: xUnit.net testconfig.json
- NUnit: Lihat dokumentasi NUnit untuk dukungan terbaru Microsoft.Testing.Platform.
- TUnit: Lihat dokumentasi TUnit untuk dukungan terbaru Microsoft.Testing.Platform.
Contoh testconfig.json
Contoh berikut menunjukkan file testconfig.json yang mengonfigurasi opsi platform dan pengaturan MSTest:
{
"platformOptions": {
"resultDirectory": "./TestResults"
},
"mstest": {
"parallelism": {
"enabled": true,
"workers": 4,
"scope": "method"
},
"timeout": {
"test": 30000
},
"execution": {
"considerFixturesAsSpecialTests": true
}
}
}
Migrasi dari .runsettings ke testconfig.json
Jika Anda bermigrasi dari file .runsettings , tabel berikut memetakan pengaturan umum ke testconfig.json setara atau alternatifnya:
| Pengaturan .runsettings | testconfig.json yang setara dengan | Catatan |
|---|---|---|
RunConfiguration/ResultsDirectory |
platformOptions.resultDirectory |
|
RunConfiguration/MaxCpuCount |
Tidak ada yang setara | Paralelisme tingkat proses dikendalikan oleh dotnet test --max-parallel-test-modules atau opsi MSBuild /m . |
MSTest/* |
mstest.* |
Lihat Mengonfigurasi MSTest — testconfig.json. |
xUnit/* |
xUnit.* |
Lihat xUnit.net testconfig.json. |
LoggerRunSettings/Loggers |
Opsi CLI | Gunakan --report-trx atau opsi CLI serupa. Dimulai dengan MTP 2.3.0, MTP dapat membaca opsi CLI dari testconfig.json. |
DataCollectionRunSettings (menyalahkan) |
Opsi CLI | Gunakan --crashdump dan --hangdump opsi CLI. Dimulai dengan MTP 2.3.0, MTP dapat membaca opsi CLI dari testconfig.json. Lihat Crash dan hang dump. |
DataCollectionRunSettings (cakupan) |
Opsi CLI | Gunakan --coverage opsi CLI. Dimulai dengan MTP 2.3.0, MTP dapat membaca opsi CLI dari testconfig.json. Lihat Cakupan kode. |
TestRunParameters |
--test-parameter CLI |
Gunakan --test-parameter key=value pada baris perintah. |
Variabel lingkungan
Variabel lingkungan dapat digunakan untuk menyediakan beberapa informasi konfigurasi runtime.
Nota
Variabel lingkungan lebih diutamakan daripada pengaturan konfigurasi dalam file testconfig.json.
variabel lingkungan TESTINGPLATFORM_EXIT_PROCESS_ON_UNHANDLED_EXCEPTION
Ketika diatur ke 1, proses host uji akan langsung keluar saat terjadi pengecualian yang tidak tertangani. Ketika diatur ke 0, platform memungkinkan penghentian secara elegan. Pengaturan ini lebih diutamakan daripada platformOptions:exitProcessOnUnhandledException konfigurasi.
variabel lingkungan TESTINGPLATFORM_DEFAULT_HANG_TIMEOUT
Mengganti waktu tunggu default (300 detik) yang digunakan untuk koneksi named pipe antara pengontrol host pengujian dan host pengujian. Nilai harus berupa TimeSpanstring yang kompatibel.
variabel lingkungan TESTINGPLATFORM_UI_LANGUAGE
Dimulai dengan MTP 1.5, variabel lingkungan ini mengatur bahasa platform untuk menampilkan pesan dan log menggunakan nilai lokal seperti en-us. Bahasa ini lebih diutamakan daripada bahasa Visual Studio dan .NET SDK. Nilai yang didukung sama seperti untuk Visual Studio. Untuk informasi selengkapnya, lihat bagian tentang mengubah bahasa penginstal dalam dokumentasi penginstalan Visual Studio.
variabel lingkungan TESTINGPLATFORM_DIAGNOSTIC
Jika diatur ke 1, mengaktifkan pembuatan log diagnostik.
variabel lingkungan TESTINGPLATFORM_DIAGNOSTIC_VERBOSITY
Menentukan tingkat verbositas saat diagnostik diaktifkan. Nilai yang tersedia adalah Trace, Debug, Information, Warning, Error, atau Critical.
variabel lingkungan TESTINGPLATFORM_DIAGNOSTIC_OUTPUT_DIRECTORY
Direktori keluaran untuk pencatatan log diagnostik. Jika tidak ditentukan, file dihasilkan di direktori TestResults default.
variabel lingkungan TESTINGPLATFORM_DIAGNOSTIC_FILE_PREFIX
Awalan untuk nama file log. Secara default menjadi "log_". Sesuai dengan opsi baris perintah --diagnostic-file-prefix.
Nota
Nama variabel lingkungan ini tersedia di MTP yang dimulai dengan versi 2.3.0. Variabel lingkungan warisan TESTINGPLATFORM_DIAGNOSTIC_OUTPUT_FILEPREFIX masih didukung demi kompatibilitas ke belakang, tetapi telah didepresiasi dan mungkin dihapus pada versi utama mendatang. Ketika kedua variabel diatur, TESTINGPLATFORM_DIAGNOSTIC_FILE_PREFIX diprioritaskan.
variabel lingkungan TESTINGPLATFORM_DIAGNOSTIC_SYNCHRONOUS_WRITE
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. Sesuai dengan opsi baris perintah --diagnostic-synchronous-write.
Nota
Nama variabel lingkungan ini tersedia di MTP yang dimulai dengan versi 2.3.0. Variabel lingkungan warisan TESTINGPLATFORM_DIAGNOSTIC_FILELOGGER_SYNCHRONOUSWRITE masih didukung demi kompatibilitas ke belakang, tetapi telah didepresiasi dan mungkin dihapus pada versi utama mendatang. Ketika kedua variabel diatur, TESTINGPLATFORM_DIAGNOSTIC_SYNCHRONOUS_WRITE diprioritaskan.
variabel lingkungan TESTINGPLATFORM_EXITCODE_IGNORE
Daftar kode keluar yang diabaikan, dipisahkan dengan titik koma. Ketika kode keluar diabaikan, proses akan kembali 0 sebagai gantinya. Misalnya, TESTINGPLATFORM_EXITCODE_IGNORE=2;8 mengabaikan kegagalan pengujian dan skenario tanpa pengujian yang dijalankan.
variabel lingkungan TESTINGPLATFORM_NOBANNER
Saat diatur ke 1 atau true, opsi ini menyembunyikan banner saat startup, pesan hak cipta, dan banner telemetri. Setara dengan --no-banner opsi baris perintah. Variabel DOTNET_NOLOGO lingkungan memiliki efek yang sama.
variabel lingkungan NO_COLOR
Jika diatur ke nilai apa pun yang tidak kosong, semua keluaran warna ANSI akan dinonaktifkan. MTP menghormati NO_COLOR konvensi.
Nota
Tersedia di MTP yang dimulai dengan versi 2.3.0.
variabel lingkungan DOTNET_NOLOGO
Saat diatur ke 1 atau true, opsi ini menyembunyikan banner saat startup, pesan hak cipta, dan banner telemetri. Ini adalah variabel lingkungan CLI .NET standar dan dihormati oleh MTP. Lihat juga TESTINGPLATFORM_NOBANNER.
variabel lingkungan TESTINGPLATFORM_WAIT_ATTACH_DEBUGGER
Ketika diatur ke 1, proses pengujian berhenti sejenak saat startup dan menunggu debugger dilampirkan sebelum melanjutkan. Setara dengan --debug opsi baris perintah. Tidak didukung pada platform browser.
Nota
Variabel lingkungan ini tersedia di MTP yang dimulai dengan versi 1.6.0.
variabel lingkungan TESTINGPLATFORM_LAUNCH_ATTACH_DEBUGGER
Ketika diatur ke 1, proses pengujian memanggil Debugger.Launch() saat mulai dijalankan, yang menyebabkan sistem meluncurkan debugger just-in-time dan melampirkannya ke proses tersebut. Gunakan variabel ini untuk mendebug masalah saat startup (misalnya, handshake mode server) yang terjadi sebelum Anda dapat melakukan attach secara manual. Pada platform non-Windows, perilaku tergantung pada debugger JIT yang dikonfigurasi.
Nota
Variabel lingkungan ini tersedia di MTP yang dimulai dengan versi 1.6.0.
Nota
Variabel lingkungan terkait diagnostik lebih diutamakan daripada argumen baris perintah yang --diagnostic-* sesuai.