Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bu makale: ✔️ .NET 6 SDK ve sonraki sürümler için geçerlidir
İsim
dotnet test - VSTest ile birim testlerini yürütmek için kullanılan .NET test sürücüsü.
Özet
dotnet test [<PROJECT> | <SOLUTION> | <DIRECTORY> | <DLL> | <EXE>]
[--test-adapter-path <ADAPTER_PATH>]
[-a|--arch <ARCHITECTURE>]
[--artifacts-path <ARTIFACTS_DIR>]
[--blame]
[--blame-crash]
[--blame-crash-dump-type <DUMP_TYPE>]
[--blame-crash-collect-always]
[--blame-hang]
[--blame-hang-dump-type <DUMP_TYPE>]
[--blame-hang-timeout <TIMESPAN>]
[-c|--configuration <CONFIGURATION>]
[--collect <DATA_COLLECTOR_NAME>]
[-d|--diag <LOG_FILE>]
[--disable-build-servers]
[-f|--framework <FRAMEWORK>]
[-e|--environment <NAME="VALUE">]
[--filter <EXPRESSION>]
[--interactive]
[-l|--logger <LOGGER>]
[--no-build]
[--no-dependencies]
[--nologo]
[--no-restore]
[-o|--output <OUTPUT_DIRECTORY>]
[--os <OS>]
[--results-directory <RESULTS_DIR>]
[-r|--runtime <RUNTIME_IDENTIFIER>]
[-s|--settings <SETTINGS_FILE>]
[-t|--list-tests]
[--tl:[auto|on|off]]
[-v|--verbosity <LEVEL>]
[<args>...]
[[--] <RunSettings arguments>]
dotnet test -h|--help
Description
dotnet test komutu, belirli bir çözümde birim testlerini yürütmek için kullanılır.
dotnet test komutu çözümü oluşturur ve kullanarak VSTestçözümdeki her test projesi için bir test ana bilgisayar uygulaması çalıştırır. Test konağı, verilen projedeki testleri bir test çerçevesi kullanarak yürütür, örneğin: MSTest, NUnit veya xUnit ve her testin başarısını veya başarısızlığını bildirir. Tüm testler başarılı olursa, test çalıştırıcısı çıkış kodu olarak 0 döndürür; aksi takdirde herhangi bir test başarısız olursa 1 döndürür.
Uyarı
dotnet test başlangıçta yalnızca VSTesttabanlı test projelerini destekleyecek şekilde tasarlanmıştır. Test çerçevelerinin son sürümleri Microsoft için destek ekliyor. Testing.Platform (MTP). Bu alternatif test platformu daha basit ve daha hızlıdır VSTest ve farklı komut satırı seçenekleriyle destekler dotnet test . Daha fazla bilgi için bkz. MTP ile dotnet testi.
Çok hedefli projeler için, her hedeflenen çerçeve için testler çalıştırılır. Test konağı ve birim testi çerçevesi NuGet paketleri olarak paketlenir ve proje için normal bağımlılıklar olarak geri yüklenir. .NET 9 SDK'sı ile başlayarak, bu testler varsayılan olarak paralel olarak çalıştırılır. Paralel yürütmeyi TestTfmsInParallel devre dışı bırakmak için MSBuild özelliğini olarak falseayarlayın. Daha fazla bilgi için, bu makalenin devamında testleri paralel çalıştırma ve örnek komut satırı makalesine bakın.
Test projeleri, aşağıdaki örnek proje dosyasında görüldüğü gibi sıradan <PackageReference> bir öğe kullanarak test çalıştırıcısını belirtir:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net8.0</TargetFramework>
<Nullable>enable</Nullable>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="18.11.0" />
<PackageReference Include="xunit" Version="2.9.3" />
<PackageReference Include="xunit.runner.visualstudio" Version="4.0.1" />
</ItemGroup>
</Project>
burada Microsoft.NET.Test.Sdk test konağıdır, xunit test çerçevesidir. Ve xunit.runner.visualstudio , xUnit çerçevesinin test konağıyla çalışmasını sağlayan bir test bağdaştırıcısıdır.
Örtük geri yükleme
dotnet restore, dotnet new, dotnet build, dotnet run, dotnet testve dotnet publishgibi geri yükleme gerektiren tüm komutlar tarafından örtük olarak çalıştırıldığından dotnet pack çalıştırmanız gerekmez. Örtük geri yüklemeyi devre dışı bırakmak için --no-restore seçeneğini kullanın.
NuGet akışlarını yönetme hakkında bilgi için
İş yükü bildirimi indirmeleri
Bu komutu çalıştırdığınızda, iş yükleri için reklam bildirimlerini zaman uyumsuz bir arka plan indirme işlemi başlatır. Bu komut tamamlandığında indirme işlemi hala çalışıyorsa indirme durdurulur. Daha fazla bilgi için bkz . Reklam bildirimleri.
Arguments
PROJECT | SOLUTION | DIRECTORY | DLL | EXE- Test projesinin yolu.
- Çözümün yolu.
- Proje veya çözüm içeren bir dizinin yolu.
- Test projesi .dll dosyasının yolu.
- Test projesi .exe dosyasının yolu.
Belirtilmezse, etki geçerli dizini belirtmek için bağımsız değişkenin kullanılmasıyla
DIRECTORYaynıdır.
Options
Uyarı
Seçeneklerde hataya neden olan değişiklikler:
- .NET 7'den başlayarak:
-a--archyerine diğer ad--test-adapter-pathgeçin - .NET 7'den başlayarak:
-r--runtimeyerine diğer ad--results-directorygeçin
--test-adapter-path <ADAPTER_PATH>Test çalıştırması için kullanılacak özel bağdaştırıcıların yolu.
Kısa form
-a7'den önceki .NET SDK sürümlerinde kullanılabilir.-
-a|--arch <ARCHITECTURE>Hedef mimariyi belirtir. Bu, sağlanan değerin varsayılan RID ile birleştirildiği Çalışma Zamanı Tanımlayıcısı'nı (RID) ayarlamak için bir kısaltma söz dizimidir. Örneğin, bir
win-x64makinede, belirterek--arch x86RID değerini olarakwin-x86ayarlar. Bu seçeneği kullanırsanız, seçeneğini kullanmayın-r|--runtime. .NET 6 Önizleme 7 sürümünden itibaren kullanılabilir. -
--artifacts-path <ARTIFACTS_DIR>Yürütülen komuttaki tüm derleme çıktı dosyaları, projeyle ayrılmış olarak belirtilen yolun altındaki alt klasörlere gider. Daha fazla bilgi için bkz . Yapıt Çıktı Düzeni. Bu seçenek ve sağlanan değer, ve kullanırken
dotnetdotnetbaşka bir komutun çıkışına bağlı olan herhangi birdotnet build --no-restoredotnet publish --no-buildkomutta açıkça basamaklandırılmalıdır. .NET 8 SDK'dan itibaren kullanılabilir. --blameTestleri suçlama modunda çalıştırır. Bu seçenek, test konağı kilitlenmesine neden olan sorunlu testleri yalıtmada yararlıdır. Kilitlenme algılandığında, kilitlenmeden önce çalıştırılan testlerin sırasını yakalayan bir dizi dosyası
TestResults/<Guid>/<Guid>_Sequence.xmloluşturur.Bu seçenek bellek dökümü oluşturmaz ve test kilitlendiğinde yararlı olmaz.
--blame-crash(.NET 5.0 SDK'dan itibaren kullanılabilir)Testleri suçlama modunda çalıştırır ve test ana bilgisayarı beklenmedik şekilde çıktığında kilitlenme dökümü toplar. Bu seçenek kullanılan .NET sürümüne, hata türüne ve işletim sistemine bağlıdır.
Yönetilen koddaki özel durumlar için, .NET 5.0 ve sonraki sürümlerde döküm otomatik olarak toplanır. Testhost veya .NET 5.0 üzerinde çalıştırılan ve kilitlenen herhangi bir alt işlem için döküm oluşturur. Yerel koddaki kilitlenmeler döküm oluşturmaz. Bu seçenek Windows, macOS ve Linux'ta çalışır.
Yerel koddaki kilitlenme bilgi dökümleri veya .NET Core 3.1 veya önceki sürümleri kullanılırken, procdump kullanılarak yalnızca Windows üzerinde toplanabilir. procdump.exe ve procdump64.exe içeren bir dizin PATH veya PROCDUMP_PATH ortam değişkeninde olmalıdır. Araçları indirin. öğesini gösterir
--blame..NET 5.0 veya sonraki bir sürümde çalışan yerel bir uygulamadan kilitlenme dökümü toplamak için,
VSTEST_DUMP_FORCEPROCDUMPortam değişkeni1olarak ayarlanarak Procdump kullanımı zorlanabilir.Test platformu ortam değişkenlerinin tam listesi için bkz . Ortam değişkenleri.
--blame-crash-dump-type <DUMP_TYPE>(.NET 5.0 SDK'dan itibaren kullanılabilir)Toplanacak kilitlenme bilgi dökümü türü. Desteklenen döküm türleri şunlardır
full:(varsayılan) vemini. öğesini gösterir--blame-crash.--blame-crash-collect-always(.NET 5.0 SDK'dan itibaren kullanılabilir)Beklenen bir kilitlenme dökümü ve beklenmeyen test ana bilgisayarı çıkışı toplar.
--blame-hang(.NET 5.0 SDK'dan itibaren kullanılabilir)Testleri suçlama modunda çalıştırın ve bir test verilen zaman aşımını aştığında bir kilitlenme dökümü toplar.
--blame-hang-dump-type <DUMP_TYPE>(.NET 5.0 SDK'dan itibaren kullanılabilir)Toplanacak kilitlenme bilgi dökümü türü. , veya
fullolmalıdırmininone. Belirtildiğindenone, test ana bilgisayarı zaman aşımında sonlandırılır, ancak döküm toplanmaz. öğesini gösterir--blame-hang.--blame-hang-timeout <TIMESPAN>(.NET 5.0 SDK'dan itibaren kullanılabilir)Test başına zaman aşımı, ardından bir kilitlenme dökümü tetiklenir ve test ana bilgisayar işlemi ve tüm alt işlemleri atılır ve sonlandırılır. Zaman aşımı değeri aşağıdaki biçimlerden birinde belirtilir:
- 1.5h, 1.5hour, 1.5 saat
- 90m, 90 dak, 90minute, 90 dak.
- 5400s, 5400sec, 5400saniye, 5400saniye
- 5400000ms, 5400000mil, 5400000millisecond, 5400000milliseconds
Birim kullanılmadığında (örneğin, 5400000), değerin milisaniye cinsinden olduğu varsayılır. Veri temelli testlerle birlikte kullanıldığında, zaman aşımı davranışı kullanılan test bağdaştırıcısına bağlıdır. xUnit, NUnit ve MSTest 2.2.4+ için zaman aşımı her test çalışması sonrasında yenilenir. 2.2.4 sürümünden önceki MSTest için zaman aşımı tüm test çalışmaları için kullanılır. Bu seçenek
netcoreapp2.1ve sonraki sürümleriyle Windows,netcoreapp3.1ve üzeri yüklü Linux'ta venet5.0veya sonraki sürümleriyle macOS'ta desteklenir. ve--blameifade eder--blame-hang.Ayrıca, bir
.runsettingsdosyada suçlamayı yapılandırabilir ve ile--settingsgeçirebilirsiniz. Dosya aynı.runsettingssuç davranışını ve vedotnet testgibiCollectDumpOnTestSessionHangüst düzeyMonitorPostmortemDebuggeranahtarlar olarak sunulmamış ek anahtarları destekler. Daha fazla bilgi için bkz . Veri toplayıcıyı suçlama.<RunSettings> <DataCollectionRunSettings> <DataCollectors> <DataCollector friendlyName="blame" enabled="true"> <Configuration> <CollectDump CollectAlways="true" DumpType="full" /> <CollectDumpOnTestSessionHang TestTimeout="30min" HangDumpType="full" /> <MonitorPostmortemDebugger DumpDirectoryPath="C:\Dumps" /> </Configuration> </DataCollector> </DataCollectors> </DataCollectionRunSettings> </RunSettings>Aşağıdaki tablolarda, suçlama seçenekleri anahtarları ve
dotnet testöğeleriyle.runsettingseşlenmiştir. Tam bir suç toplayıcı başvurusu için bkz . Suçlama veri toplayıcısı.Kilitlenme bilgi dökümü seçenekleri:
Davranış dotnet testAnahtarı.runsettingsöğesiKilitlenme dökümü toplama --blame-crash<CollectDump />Temiz bir çıkışta bile toplama --blame-crash-collect-always<CollectDump CollectAlways="true" />Döküm türü ( mini,full; varsayılanfull)--blame-crash-dump-type<CollectDump DumpType="full" />Kilitlenme bilgi dökümü seçenekleri:
Davranış dotnet testAnahtarı.runsettingsöğesiKilitlenme dökümü toplama --blame-hang<CollectDumpOnTestSessionHang />Kilitlenme bilgi dökümü öncesinde zaman aşımı (varsayılan 1h)--blame-hang-timeout<CollectDumpOnTestSessionHang TestTimeout="90m" />Kilitlenme bilgi dökümü türü ( mini,full,none)--blame-hang-dump-type<CollectDumpOnTestSessionHang HangDumpType="mini" />Microsoft için. Testing.Platform (MTP) test uygulamaları,
--blame-*anahtarlar ve suç veri toplayıcısı geçerli değildir. MTP, ve paketlerinden--crashdump,--hangdumpve--hangdump-timeoutMicrosoft.Testing.Extensions.CrashDumpkullanırMicrosoft.Testing.Extensions.HangDump. Daha fazla bilgi için bkz. MTP ile dotnet testi.-
-c|--configuration <CONFIGURATION>Derleme yapılandırmasını tanımlar. Çoğu proje için varsayılan değer şeklindedir
Debug, ancak projenizdeki derleme yapılandırma ayarlarını geçersiz kılabilirsiniz. --collect <DATA_COLLECTOR_NAME>Test çalıştırması için veri toplayıcıyı etkinleştirir. Olay Günlüğü veri toplayıcısı ve kendi veri toplayıcınızı yazma yönergeleri de dahil olmak üzere daha fazla bilgi için bkz. Test çalıştırmasını izleme ve analiz etme.
Örneğin, seçeneğini kullanarak
--collect "Code Coverage"kod kapsamını toplayabilirsiniz. Daha fazla bilgi için bkz. Kod kapsamını kullanma, Koşu kapsamı çözümlemesini sağlama ve GitHub sorunu dotnet/docs#34479.Kod kapsamını toplamak için seçeneğini kullanarak Coverlet'i.
-d|--diag <LOG_FILE>Test platformu için tanılama modunu etkinleştirir ve tanılama iletilerini belirtilen dosyaya ve yanındaki dosyalara yazar. İletileri günlüğe kaydeden işlem, test ana bilgisayar günlüğü ve
*.host_<date>.txtveri toplayıcı günlüğü gibi*.datacollector_<date>.txthangi dosyaların oluşturulduğunu belirler.İzleme düzeyini ayarlamak için günlük dosyası adına ekleyin
;tracelevel=<LEVEL>, örneğin--diag log.txt;tracelevel=verbose. içintracelevelizin verilen değerler ,off,error,warningveinfodeğerleridirverbose.verbosevarsayılan değerdir.-
--disable-build-serversKomutu kalıcı derleme sunucularını yoksaymaya zorlar. Bu seçenek, derleme önbelleğinin tüm kullanımını devre dışı bırakmak için tutarlı bir yol sağlar ve bu da bir derlemeyi sıfırdan zorlar. Önbelleklere güvenmeyen bir derleme, önbellekler herhangi bir nedenle bozulduğunda veya yanlış olduğunda kullanışlıdır. .NET 7 SDK'dan itibaren kullanılabilir.
-e|--environment <NAME="VALUE">Ortam değişkeninin değerini ayarlar. Yoksa değişkeni oluşturur, varsa geçersiz kılar. Bu seçeneğin kullanılması, testleri yalıtılmış bir işlemde çalıştırılmaya zorlar. Seçeneği birden çok değişken sağlamak için birden çok kez belirtilebilir.
-f|--framework <FRAMEWORK>Testleri çalıştırmak için hedef çerçevenin hedef çerçeve adı (TFM). Hedef çerçeve de proje dosyasında belirtilmelidir.
--filter <EXPRESSION>Verilen ifadeyi kullanarak geçerli projedeki testleri filtreler. Yalnızca filtre ifadesiyle eşleşen testler çalıştırılır. Daha fazla bilgi için Filtre seçeneği ayrıntıları bölümüne bakın. Seçmeli birim testi filtrelemeyi kullanma hakkında daha fazla bilgi ve örnek için bkz . Seçmeli birim testleri çalıştırma.
-
-?|-h|--helpkomutunun nasıl kullanılacağına ilişkin bir açıklama yazdırır.
-
--interactiveKomutun durmasına ve kullanıcı girişini veya eylemini beklemesine izin verir. Örneğin, kimlik doğrulamasını tamamlamak için.
-l|--logger <LOGGER>Test sonuçları için bir günlükçü belirtir ve isteğe bağlı olarak günlükçü için geçiş yapar. Birden çok günlükçü etkinleştirmek için bu parametreyi birden çok kez belirtin. Daha fazla bilgi için bu makalenin devamında test sonuçlarını raporlama, Günlükçüler için anahtarlar ve örneklere bakın.
Komut satırı anahtarlarını günlükçüye geçirmek için:
- Anahtarın kısaltılmış biçimini değil tam adını kullanın (örneğin,
verbosityyerinev). - Öndeki tireleri atla.
- Her anahtarı noktalı
;virgülle ayıran alanı değiştirin. - Anahtarın bir değeri varsa, bu anahtar ile değeri arasındaki iki nokta üst üste ayırıcısını eşittir işaretiyle
=değiştirin.
Örneğin,
-v:detailed --consoleLoggerParameters:ErrorsOnly,verbosity=detailed;consoleLoggerParameters=ErrorsOnlyolur.- Anahtarın kısaltılmış biçimini değil tam adını kullanın (örneğin,
--no-buildTest projesini çalıştırmadan önce derlemez. Ayrıca
--no-restorebayrağını örtük olarak ayarlar.--no-dependenciesProjeden projeye başvuruları derlemeyi atlar. .NET 11 Önizleme 6'dan itibaren kullanılabilir.
--nologoMicrosoft TestPlatform başlığını görüntülemeden testleri çalıştırın. .NET Core 3.0 SDK'dan itibaren kullanılabilir.
--no-restoreKomutu çalıştırırken örtük geri yükleme yürütmez.
-o|--output <OUTPUT_DIRECTORY>Çalıştırılacak ikili dosyaları bulabileceğiniz dizin. Belirtilmezse, varsayılan yol şeklindedir
./bin/<configuration>/<framework>/. Birden çok hedef çerçeveye sahip projeler için (özelliği aracılığıylaTargetFrameworks) bu seçeneği ne zaman belirttiğinizi de tanımlamanız--frameworkgerekir.dotnet testher zaman çıkış dizininden testleri çalıştırır. Çıkış dizinindeki test varlıklarını kullanmak için kullanabilirsiniz AppDomain.BaseDirectory ..NET 7.0.200 SDK ve üzeri
Bu komutu bir çözümde çalıştırırken seçeneğini belirtirseniz
--output, CLI çıkış yolunun belirsiz semantiği nedeniyle bir uyarı (7.0.200'de bir hata) yayar.--outputTüm yerleşik projelerin tüm çıkışları, hem çok hedefli projelerle hem de doğrudan ve geçişli bağımlılıkların farklı sürümlerine sahip projelerle uyumlu olmayan belirtilen dizine kopyalandığından bu seçeneğe izin verilmez. Daha fazla bilgi için bkz--outputiçin çözüm düzeyi seçeneği artık geçerli değil.
-
--os <OS>Hedef işletim sistemini (OS) belirtir. Bu, sağlanan değerin varsayılan RID ile birleştirildiği Çalışma Zamanı Tanımlayıcısı'nı (RID) ayarlamak için bir kısaltma söz dizimidir. Örneğin, bir
win-x64makinede, belirterek--os linuxRID değerini olaraklinux-x64ayarlar. Bu seçeneği kullanırsanız, seçeneğini kullanmayın-r|--runtime. .NET 6'dan beri kullanılabilir. --results-directory <RESULTS_DIR>Test sonuçlarının yerleştirileceği dizin. Belirtilen dizin yoksa oluşturulur. Varsayılan değer, proje dosyasını içeren dizindedir
TestResults.Kısa form
-r7'den önceki .NET SDK sürümlerinde kullanılabilir.-r|--runtime <RUNTIME_IDENTIFIER>Test etmek için hedef çalışma zamanı.
kısa form
-r.NET SDK 7'den itibaren kullanılabilir.-s|--settings <SETTINGS_FILE>Testleri
.runsettingsçalıştırmak için kullanılacak dosya. öğesininTargetPlatform(x86|x64) etkisidotnet testyoktur. x86'yı hedefleyen testleri çalıştırmak için .NET Core'un x86 sürümünü yükleyin. Yoldaki dotnet.exe bitliği, testleri çalıştırmak için kullanılacaktır. Daha fazla bilgi için aşağıdaki kaynaklara bakın:-t|--list-testsTestleri çalıştırmak yerine bulunan testleri listeleyin.
-
--tl:[auto|on|off]Derleme çıkışı için Terminal Günlükçü'lerinin kullanılıp kullanılmayacağını belirtir. Varsayılan değer, terminal günlüğünü etkinleştirmeden önce ortamı doğrulayan değeridir
auto. Ortam denetimi, terminalin modern çıkış özelliklerini kullanabileceğini ve yeni günlükçü'leri etkinleştirmeden önce yeniden yönlendirilmiş standart çıkış kullanmadığını doğrular.onortam denetimini atlar ve terminal günlüğünü etkinleştirir.offortam denetimini atlar ve varsayılan konsol günlükçüsüsü kullanır.Terminal Günlükçü, geri yükleme aşamasını ve ardından derleme aşamasını gösterir. Her aşamada, şu anda oluşturulan projeler terminalin en altında görünür. Derlemeye alınan her proje, hem şu anda derlenen MSBuild hedefini hem de bu hedefe harcanan süreyi oluşturur. Derleme hakkında daha fazla bilgi edinmek için bu bilgileri arayabilirsiniz. Bir projenin oluşturulması tamamlandığında, şunları yakalayan tek bir "derleme tamamlandı" bölümü yazılır:
- Oluşturulan projenin adı.
- Hedef çerçeve (çok hedefliyse).
- Bu derlemenin durumu.
- Bu derlemenin birincil çıkışı (köprüdür).
- Bu proje için oluşturulan tüm tanılamalar.
Bu seçenek .NET 8'den itibaren kullanılabilir.
-
-v|--verbosity <LEVEL>Komutun ayrıntı düzeyini ayarlar. İzin verilen değerler ,
q[uiet],m[inimal],n[ormal]ved[etailed]diag[nostic]. Varsayılan değer:minimal. Daha fazla bilgi için bkz. LoggerVerbosity. argsBağdaştırıcıya geçirecek ek bağımsız değişkenleri belirtir. Birden çok bağımsız değişkeni ayırmak için boşluk kullanın.
Olası bağımsız değişkenlerin listesi belirtilen davranışa bağlıdır:
- Bir proje, çözüm veya dizin belirttiğinizde veya bu bağımsız değişkeni atlarsanız, çağrı adresine
msbuildiletilir. Bu durumda, kullanılabilir bağımsız değişkenler dotnet msbuild belgelerinde bulunabilir. - Bir .dll veya .exe belirttiğinizde, çağrı adresine
vstestiletilir. Bu durumda, kullanılabilir bağımsız değişkenler dotnet vstest belgelerinde bulunabilir.
- Bir proje, çözüm veya dizin belirttiğinizde veya bu bağımsız değişkeni atlarsanız, çağrı adresine
RunSettingsBağımsız değişken
Satır içi RunSettings , komut satırında "-- " sonrasındaki son bağımsız değişkenler olarak geçirilir (--'ın ardından gelen boşluğu not edin). Satır içi RunSettings çift olarak [name]=[value] belirtilir. Bir boşluk, birden çok [name]=[value] çifti ayırmak için kullanılır.
Örnek: dotnet test -- MSTest.DeploymentEnabled=false MSTest.MapInconclusiveToFailed=True
.NET 5 SDK'sından başlayarak, komut satırından da ayarlayabilirsinizTestRunParameters, örneğin: dotnet test -- TestRunParameters.Parameter(name="myParam", value="value").
RunSettings bağımsız değişkenleri bir dosyadan alınan değerlerden önceliklidir .runsettings .
Daha fazla bilgi için bkz. Komut satırı aracılığıyla RunSettings bağımsız değişkenlerini aşma.
Örnekler
Testleri geçerli dizinde projede çalıştırın:
dotnet testProjede
test1testleri çalıştırın:dotnet test ~/projects/test1/test1.csprojDerlemeyi kullanarak
test1.dlltestleri çalıştırın:dotnet test ~/projects/test1/bin/debug/test1.dllTestleri geçerli dizinde projede çalıştırın ve trx biçiminde bir test sonuçları dosyası oluşturun:
dotnet test --logger trxTestleri geçerli dizinde projede çalıştırın ve Microsoft Kod Kapsamı kullanarak bir kod kapsamı dosyası oluşturun:
dotnet test --collect "Code Coverage"Testleri geçerli dizinde projede çalıştırın ve Coverlet kullanarak bir kod kapsamı dosyası oluşturun (Coverlet toplayıcılar tümleştirmesini yükledikten sonra):
dotnet test --collect:"XPlat Code Coverage"Testleri geçerli dizinde projede çalıştırın ve konsola ayrıntılı ayrıntıyla oturum açın:
dotnet test --logger "console;verbosity=detailed"Testleri geçerli dizindeki projede çalıştırın ve TestResults klasöründeki trx günlükçüs ile testResults.trxdosyasına oturum açın:
dotnet test --logger "trx;logfilename=testResults.trx"Günlük dosyası adı belirtildiğinden, çok hedefli bir proje söz konusu olduğunda her hedef çerçeve için aynı ad kullanılır. Her hedef çerçevenin çıktısı, önceki hedef çerçeveler için çıkışın üzerine yazar. Göreli yollar bu klasöre göre olduğundan, dosya test projesi klasöründeki TestResults klasöründe oluşturulur. Aşağıdaki örnekte, her hedef çerçeve için ayrı bir dosyanın nasıl üretildiği gösterilmektedir.
Testleri geçerli dizindeki projede çalıştırın ve her hedef çerçeve için benzersiz dosya adlarıyla TestResults klasöründeki dosyalara trx günlükçü ile oturum açın:
dotnet test --logger:"trx;LogFilePrefix=testResults"Testleri geçerli dizindeki projede çalıştırın ve TestResults klasöründe testResults.html için html günlükçü ile oturum açın:
dotnet test --logger "html;logfilename=testResults.html"Testleri geçerli dizinde projede çalıştırın ve test konağı kilitlendiğinde devam eden testleri rapor edin:
dotnet test --blameiçin (ikili günlük) bağımsız değişkenini
test1-blsağlayarak testleri projedemsbuildçalıştırın:dotnet test ~/projects/test1/test1.csproj -blMSBuild
test1özelliğiniDefineConstantsolarak ayarlayarak projedeDEVtestleri çalıştırın:dotnet test ~/projects/test1/test1.csproj -p:DefineConstants="DEV"MSBuild
test1özelliğiniTestTfmsInParallelolarak ayarlayarak projedefalsetestleri çalıştırın:dotnet test ~/projects/test1/test1.csproj -p:TestTfmsInParallel=false
Filtre seçeneği ayrıntıları
--filter <EXPRESSION>
<Expression> biçimindedir <property><operator><value>[|&<Expression>].
<property> , özniteliğidir Test Case. Popüler birim testi çerçeveleri tarafından desteklenen özellikler şunlardır:
| Test Çerçevesi | Desteklenen özellikler |
|---|---|
| MSTest |
|
| xUnit |
|
| NUnit |
|
xUnit için, ile [Trait("key", "value")] tanımlanan bir özellik anahtarına göre filtrelenmiştir (örneğin, [Trait("Category", "bvt")] ile --filter Category=bvteşleştirilir). NUnit TestCategory için ve Category eşdeğerdir ve ile [Property("key", "value")] tanımlanan bir özellik anahtarına göre filtrelenir.
<operator> özelliği ile değeri arasındaki ilişkiyi açıklar:
| Operator | İşlev |
|---|---|
= |
Tam eşleşme |
!= |
Tam eşleşme değil |
~ |
İçerir |
!~ |
İçermiyor |
<value> bir dizedir. Tüm aramalar büyük/küçük harfe duyarlı değildir.
olmayan bir <operator> ifade otomatik olarak on containsFullyQualifiedName özelliği olarak kabul edilir (örneğin, dotnet test --filter xyz ile dotnet test --filter FullyQualifiedName~xyzaynıdır).
İfadeler koşullu işleçlerle birleştirilebilir:
| Operator | İşlev |
|---|---|
| |
OR |
& |
AND |
Koşullu işleçler kullanırken ifadeleri parantez içine alabilirsiniz (örneğin, (Name~TestMethod1) | (Name~TestMethod2)).
Seçmeli birim testi filtrelemeyi kullanma hakkında daha fazla bilgi ve örnek için bkz . Seçmeli birim testleri çalıştırma.
Çıkış kodları
TESTLERI VSTest yolunda çalıştırdığınızda, dotnet test sonucu iki çıkış kodundan biriyle bildirir:
| Çıkış kodu | Meaning |
|---|---|
0 |
Başarı. İstenen işlem tamamlandı ve bir test çalıştırması için yürütülen tüm testler geçti. |
1 |
Başarısızlık. Örneğin, bir veya daha fazla test başarısız oldu, bir çalıştırma hatası bildirildi, komut satırı geçersizdi, bir test kaynağı yüklenemedi veya çalıştırma durduruldu veya iptal edildi. |
Temel alınan vstest.console işlem hiçbir zaman başka bir değer döndürmez.
Bulma işlemi eşleşen test bulmadığında, çalıştırma hata yerine bir uyarı yazdırır ve yine de varsayılan olarak döndürür 0 . Bunun yerine sıfır testi bulan veya seçen bir çalıştırmanın döndürülmesi 1 için bir dosyada RunConfiguration.TreatNoTestsAsError olarak true ayarlayın.runsettings.