Neler her şeyi çalıştırır

Değişikliklerin çoğu birkaç test sınıfı seçer. Bazıları güvenli bir şekilde daraltılamaz; bu yüzden TestDetta bir test projesinin tamamını ya da bir klasörün altındaki her projeyi çalıştırır. Bu sayfa hepsini listeler; böylece geniş bir seçim asla sürpriz olmaz.

Derlemenin geneline etki eden dosyalar

Bu dosyalar altlarındaki her projenin nasıl derlendiğini değiştirir. Bunlardan birindeki değişiklik, bulunduğu klasördeki ve altındaki her test projesini çalıştırır:

DosyaÇalıştırdığı
Directory.Build.props, Directory.Build.targets, Directory.Build.rspAltındaki her test projesi
Directory.Solution.props, Directory.Solution.targetsAltındaki her test projesi
global.json, NuGet.config, .editorconfigAltındaki her test projesi
Directory.Packages.props, yalnızca PackageVersion öğeleri değiştiyseYalnızca değişen bir paketi referans alan test projeleri ve onlara bağımlı olanlar
Directory.Packages.props, başka herhangi bir şey (bir GlobalPackageReference, transitive pinning, property'ler)Altındaki her test projesi

Bir test projesinin tamamını çalıştıran değişiklikler

DeğişiklikNeden daraltılamaz
Proje dosyası ya da onun import ettiği bir .props veya .targets dosyasıProjedeki herhangi bir şeyin nasıl derlendiğini değiştirebilir.
Projedeki C# olmayan herhangi bir dosya, örneğin appsettings.json, bir .resx ya da bir test verisi dosyasıHiçbir kapsam haritası onu kimin okuduğunu söylemez.
Bir global using ya da bir assembly attribute'uHer dosyaya uygulanır.
Hiçbir bildirimin kapsamadığı koddaki bir C# değişikliği, örneğin bir önişlemci koşulunun altındaİzlenecek bir üye yoktur.
Hiçbir yerde adı geçmeyen, ancak bir framework'ün reflection ile keşfedebileceği değişmiş bir tip (controller'lar, mesaj handler'ları, EF yapılandırmaları)İsimler ve kapsam verisi onu kimin bulduğunu söyleyemez.
Bir F# ya da Visual Basic projesindeki değişiklikBunların kodu analiz edilmez.
Analyzer ya da source generator olarak kullanılan bir projeEtkisi çağrılar üzerinde değil, derleme üzerindedir.

Bunların her biri, etkilenen projeye bağımlı her test projesini de çalıştırır.

Kapsam haritası durumları

Hiç harita olmaması her şeyi çalıştırmaz: seçim isimle izlemeye geri döner; bu, kapsam verisinden daha geniştir ama yine de dardır.

Yok sayılan dosyalar

Hiçbir proje klasörünün içinde olmayan değişmiş bir dosya, örneğin README.md, .github/ altındaki dosyalar ya da depo kökündeki bir script, hiçbir projeye ait değildir ve hiçbir şey seçmez. Çıktıda eşlenmemiş (unmapped) olarak listelenir.

Testleriniz hiçbir proje klasörünün içinde olmayan bir dosyayı okuyorsa, o dosyadaki bir değişiklik onları seçmez. Bu tür dosyaları test projesinin içinde tutun ya da <None Include="..\..\testdata\**" CopyToOutputDirectory="PreserveNewest" /> gibi projenin öğeleri olarak listeleyin. Böylece dosya nerede olursa olsun projeye ait olur; değiştirilmesi ya da silinmesi projeyi çalıştırır.

Bir istisna: hiçbir projenin sahiplenmediği bir kaynak ya da derleme dosyası (.cs, .fs, .vb, .props, .targets, .projitems), import'ları tam olarak çözümlenemeyen her projenin derleme girdisi sayılır; dolayısıyla o projeler çalışır.