Mengakses fail dalam ujian unit: Kaedah yang boleh dipercayai untuk menentukan direktori perhimpunan ujian
Ujian unit sering memerlukan mengakses fail berbanding dengan perhimpunan ujian. Walau bagaimanapun, mencari direktori pemasangan boleh menjadi rumit kerana variasi dalam persekitaran ujian (mis., Pelari ujian, direktori sementara). Panduan ini menyediakan penyelesaian yang mantap.
Cabaran mencari direktori perhimpunan
Objektifnya adalah untuk mendapatkan laluan direktori perhimpunan semasa, tidak termasuk nama fail. Pendekatan biasa sering jatuh:
Environment.CurrentDirectory
: Ini mengembalikan direktori kerja semasa, yang mungkin berbeza dari lokasi pemasangan. Sebagai contoh, dalam beberapa pelari ujian, ia menunjuk kepada direktori pelari, bukan projek ujian.
Assembly.GetAssembly(typeof(AssemblyType)).Location
Assembly.GetExecutingAssembly().Location
: Ini menyediakan laluan perhimpunan penuh termasuk nama fail, bukan hanya direktori.
Penyelesaian: memanfaatkan Assembly.CodeBase
. Harta ini mengembalikan laluan pemasangan sebagai URI. Dengan menggunakan Assembly.CodeBase
dan UriBuilder.UnescapeDataString
, kita boleh dengan pasti mengekstrak laluan direktori: Path.GetDirectoryName
<code class="language-csharp">public static string GetAssemblyDirectory() { string codeBase = Assembly.GetExecutingAssembly().CodeBase; UriBuilder uri = new UriBuilder(codeBase); string path = Uri.UnescapeDataString(uri.Path); return Path.GetDirectoryName(path); }</code>
Atas ialah kandungan terperinci Bagaimanakah saya boleh menentukan laluan direktori perhimpunan ujian saya dalam ujian unit?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!