Bahasa

ExecutableConditionAttribute Kelas

Definisi

Atribut ini digunakan untuk mengontrol secara kondisional apakah kelas pengujian atau metode pengujian akan berjalan atau diabaikan, berdasarkan apakah executable (alat) tertentu tersedia.

[System.AttributeUsage(System.AttributeTargets.Class | System.AttributeTargets.Method, AllowMultiple=true, Inherited=false)]
[System.Runtime.CompilerServices.Nullable(0)]
public sealed class ExecutableConditionAttribute : Microsoft.VisualStudio.TestTools.UnitTesting.ConditionBaseAttribute
[System.AttributeUsage(System.AttributeTargets.Class | System.AttributeTargets.Method, AllowMultiple=true, Inherited=false)]
public sealed class ExecutableConditionAttribute : Microsoft.VisualStudio.TestTools.UnitTesting.ConditionBaseAttribute
[<System.AttributeUsage(System.AttributeTargets.Class | System.AttributeTargets.Method, AllowMultiple=true, Inherited=false)>]
[<System.Runtime.CompilerServices.Nullable(0)>]
type ExecutableConditionAttribute = class
    inherit ConditionBaseAttribute
[<System.AttributeUsage(System.AttributeTargets.Class | System.AttributeTargets.Method, AllowMultiple=true, Inherited=false)>]
type ExecutableConditionAttribute = class
    inherit ConditionBaseAttribute
Public NotInheritable Class ExecutableConditionAttribute
Inherits ConditionBaseAttribute
Warisan
ExecutableConditionAttribute
Atribut

Keterangan

Ini adalah kondisi agnostik alat generik. Ada dua mode:

  • Ketika tidak Arguments ada yang disediakan, kondisi hanya memeriksa bahwa executable dapat ditemukan pada sistem PATH (dan, pada Windows, dapat diselesaikan melalui PATHEXT). Ini tidak menjalankan executable. Misalnya, ia dapat memverifikasi bahwa docker diinstal.
  • Ketika Arguments disediakan, kondisi berjalan executable arguments dan hanya terpenuhi ketika proses keluar dengan kode 0 dalam TimeoutSeconds. Misalnya, [ExecutableCondition("docker", "version")] memverifikasi bahwa Docker CLI benar-benar merespons. Output proses dialihkan dan dibuang, dan proses (bersama dengan pohon proses anaknya, di mana runtime mendukungnya) dihentikan jika melebihi batas waktu.

Status khusus produk (misalnya apakah daemon Docker dikonfigurasi untuk kontainer Linux) sengaja di luar cakupan; melapisi pemeriksaan tersebut di atas atribut ini atau menulis milik Anda sendiri ConditionBaseAttribute.

Ketersediaan yang dapat dieksekusi tergantung pada lingkungan runtime, termasuk PATH, sehingga executable yang hilang atau salah eja tidak dapat divalidasi secara statis dan dievaluasi segera sebelum pengujian dijalankan.

Setiap kombinasi executable-and-arguments yang berbeda membentuk grup kondisinya sendiri (lihat GroupName). Akibatnya, menerapkan atribut beberapa kali dengan perintah yang berbeda mengharuskan semuanya terpenuhi (logis AND), sambil menerapkannya beberapa kali dengan perintah yang sama hanya memerlukan satu untuk dicocokkan (LOGICAL OR).

Atribut ini tidak diwariskan. Menerapkannya ke kelas dasar tidak akan memengaruhi kelas turunan.

Konstruktor

Nama Deskripsi
ExecutableConditionAttribute(ConditionMode, String, String[])

Menginisialisasi instans baru dari kelas ExecutableConditionAttribute.

ExecutableConditionAttribute(ConditionMode, String)

Menginisialisasi instans ExecutableConditionAttribute baru kelas yang memeriksa apakah executable yang diberikan tersedia di PATH.

ExecutableConditionAttribute(String, String[])

Menginisialisasi instans ExecutableConditionAttribute baru kelas yang menyertakan pengujian hanya ketika perintah yang diberikan tersedia.

ExecutableConditionAttribute(String)

Menginisialisasi instans ExecutableConditionAttribute baru kelas yang menyertakan pengujian hanya ketika executable yang diberikan tersedia di PATH.

Properti

Nama Deskripsi
Arguments

Mendapatkan argumen yang diteruskan ke executable. Jika kosong, hanya keberadaan executable on PATH yang dicentang; jika tidak, executable dijalankan dengan argumen ini dan harus keluar dengan kode 0.

Executable

Mendapatkan executable yang dicari kondisi ini.

GroupName

Mendapatkan nama grup untuk atribut ini. Setiap perintah -- dikombinasikan dengan Mode -- membentuk grupnya sendiri, jadi membutuhkan beberapa perintah yang berbeda dikombinasikan dengan AND logis, sementara perintah yang sama dengan mode yang berlawanan tidak dibatalkan secara diam-diam (mencerminkan MemberConditionAttribute).

IgnoreMessage

Mendapatkan atau mengatur pesan abaikan yang menunjukkan alasan mengabaikan metode pengujian atau kelas pengujian.

(Diperoleh dari ConditionBaseAttribute)
IsConditionMet

Mendapatkan nilai yang menunjukkan apakah kondisi terpenuhi. Implementasi properti ini tidak boleh membaca Mode properti .

Mode

Mendapatkan mode kondisi.

(Diperoleh dari ConditionBaseAttribute)
TimeoutSeconds

Mendapatkan atau mengatur jumlah detik maksimum untuk menunggu executable keluar saat Arguments disediakan. Nilai yang kurang dari atau sama dengan 0 berarti tidak ada batas waktu. Defaultnya adalah 30 detik.

Berlaku untuk