VSTest ile dotnet testi

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.

komutu, Azure DevOps Services veya geri yüklemenin ne zaman gerçekleştiğini açıkça denetlemesi gereken derleme sistemlerinde continuous tümleştirme derlemeleri gibi açıkça geri yüklemenin anlamlı olduğu bazı senaryolarda hala kullanışlıdır.

NuGet akışlarını yönetme hakkında bilgi için belgelerine bakın.

İş 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 DIRECTORY aynıdır.

Options

Uyarı

Seçeneklerde hataya neden olan değişiklikler:

  • .NET 7'den başlayarak: -a--arch yerine diğer ad --test-adapter-path geçin
  • .NET 7'den başlayarak: -r--runtime yerine diğer ad --results-directory geç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 -a 7'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-x64 makinede, belirterek --arch x86 RID değerini olarak win-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 bir dotnet build --no-restoredotnet publish --no-build komutta açıkça basamaklandırılmalıdır. .NET 8 SDK'dan itibaren kullanılabilir.

  • --blame

    Testleri 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.xml oluş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_FORCEPROCDUMP ortam değişkeni 1 olarak 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) ve mini. öğ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ğinde none , 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.1 ve sonraki sürümleriyle Windows, netcoreapp3.1 ve üzeri yüklü Linux'ta ve net5.0 veya sonraki sürümleriyle macOS'ta desteklenir. ve --blameifade eder--blame-hang.

    Ayrıca, bir .runsettings dosyada suçlamayı yapılandırabilir ve ile --settingsgeçirebilirsiniz. Dosya aynı .runsettings suç davranışını ve ve dotnet testgibi CollectDumpOnTestSessionHang üst düzey MonitorPostmortemDebugger anahtarlar 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 .runsettings eş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 test Anahtarı .runsettings öğesi
    Kilitlenme 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ılan full) --blame-crash-dump-type <CollectDump DumpType="full" />

    Kilitlenme bilgi dökümü seçenekleri:

    Davranış dotnet test Anahtarı .runsettings öğesi
    Kilitlenme 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.CrashDump kullanı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>.txt veri toplayıcı günlüğü gibi *.datacollector_<date>.txt hangi 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çin tracelevel izin verilen değerler , off, error, warningve infodeğerleridirverbose. verbose varsayılan değerdir.

  • --disable-build-servers

    Komutu 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|--help

    komutunun nasıl kullanılacağına ilişkin bir açıklama yazdırır.

  • --interactive

    Komutun 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, verbosity yerine v).
    • Ö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=ErrorsOnly olur.

  • --no-build

    Test projesini çalıştırmadan önce derlemez. Ayrıca --no-restore bayrağını örtük olarak ayarlar.

  • --no-dependencies

    Projeden projeye başvuruları derlemeyi atlar. .NET 11 Önizleme 6'dan itibaren kullanılabilir.

  • --nologo

    Microsoft TestPlatform başlığını görüntülemeden testleri çalıştırın. .NET Core 3.0 SDK'dan itibaren kullanılabilir.

  • --no-restore

    Komutu ç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ığıyla TargetFrameworks ) bu seçeneği ne zaman belirttiğinizi de tanımlamanız --framework gerekir. dotnet test her 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. --output Tü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--output iç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-x64 makinede, belirterek --os linux RID değerini olarak linux-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 -r 7'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. öğesinin TargetPlatform (x86|x64) etkisi dotnet 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-tests

    Testleri ç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. on ortam denetimini atlar ve terminal günlüğünü etkinleştirir. off ortam 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]ve d[etailed]diag[nostic]. Varsayılan değer: minimal. Daha fazla bilgi için bkz. LoggerVerbosity.

  • args

    Bağ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.
  • RunSettings Bağı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 test
    
  • Projede test1 testleri çalıştırın:

    dotnet test ~/projects/test1/test1.csproj
    
  • Derlemeyi kullanarak test1.dll testleri çalıştırın:

    dotnet test ~/projects/test1/bin/debug/test1.dll
    
  • Testleri geçerli dizinde projede çalıştırın ve trx biçiminde bir test sonuçları dosyası oluşturun:

    dotnet test --logger trx
    
  • Testleri 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 --blame
    
  • için (ikili günlük) bağımsız değişkenini test1-blsağlayarak testleri projede msbuild çalıştırın:

    dotnet test ~/projects/test1/test1.csproj -bl
    
  • MSBuild test1 özelliğini DefineConstantsolarak ayarlayarak projede DEV testleri çalıştırın:

    dotnet test ~/projects/test1/test1.csproj -p:DefineConstants="DEV"
    

  • MSBuild test1 özelliğini TestTfmsInParallelolarak ayarlayarak projede false testleri ç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
  • FullyQualifiedName
  • İsim
  • SınıfAdı
  • Priority
  • TestCategory
xUnit
  • FullyQualifiedName
  • Gösterim Adı
  • Özellik
NUnit
  • FullyQualifiedName
  • İsim
  • Priority
  • TestCategory
  • Kategori
  • Property

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.

Ayrıca bakınız