Microsoft.Testing.Platform (MTP) ile dotnet testi

Bu makale: ✔️ .NET 10 SDK ve sonraki sürümler için geçerlidir

İsim

dotnet test - MTP ile birim testlerini yürütmek için kullanılan .NET test sürücüsü.

Özet

dotnet test
    [--project <PROJECT_PATH>]
    [--solution <SOLUTION_PATH>]
    [--test-modules <EXPRESSION>] 
    [--root-directory <ROOT_PATH>]
    [--max-parallel-test-modules <NUMBER>]
    [--config-file <CONFIG_FILE>]
    [--results-directory <RESULTS_DIRECTORY>]
    [--diagnostic-output-directory <DIAGNOSTIC_OUTPUT_DIRECTORY>]
    [--minimum-expected-tests <NUMBER>]
    [-a|--arch <ARCHITECTURE>]
    [-c|--configuration <CONFIGURATION>]
    [-f|--framework <FRAMEWORK>]
    [--os <OS>]
    [-r|--runtime <RUNTIME_IDENTIFIER>]
    [-v|--verbosity <LEVEL>]
    [--no-build]
    [--no-restore]
    [--no-ansi]
    [--no-progress]
    [--output <VERBOSITY_LEVEL>]
    [--no-launch-profile]
    [--no-launch-profile-arguments]
    [<args>...]

dotnet test -h|--help

Description

MTP ile VSTest'ten dotnet test daha hızlı çalışır. Testle ilgili bağımsız değişkenler, test project kayıtlı uzantılara bağlı olduğundan artık sabit değildir. Ayrıca, MTP testleri çalıştırırken globbing filtresini destekler. Daha fazla bilgi için bkz. MTP.

Uyarı

aracılığıyla MTP kabul edildiğindeglobal.jsondotnet test, tüm test projelerinin MTP kullanmasını bekler. Test projelerinden herhangi biri VSTest kullanıyorsa bu bir hatadı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, < DevOps Services veya geri yüklemenin ne zaman gerçekleştiğini açıkça denetlemesi gereken derleme sistemlerinde Azure continuous tümleştirme derlemeleri gibi belirli senaryolarda hala kullanışlıdır.

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

Options

Uyarı

Aynı anda aşağıdaki seçeneklerden yalnızca birini kullanabilirsiniz: --project, --solution veya --test-modules. Bu seçenekler birleştirilemiyor. Ayrıca, --test-moduleskullanırken , --arch, --configuration, --frameworkveya --os--runtimebelirtemezsiniz. Bu seçenekler önceden oluşturulmuş bir modül için uygun değildir.

  • --project <PROJECT_PATH>

    Çalıştırılacak project dosyasının yolunu belirtir (klasör adı veya tam yol). Belirtilmezse, varsayılan olarak geçerli dizine geçer.

  • --solution <SOLUTION_PATH>

    Çalıştırılacak çözüm dosyasının yolunu belirtir (klasör adı veya tam yol). Belirtilmezse, varsayılan olarak geçerli dizine geçer.

  • --test-modules <EXPRESSION>

    Dosya genelleme kullanarak test modüllerini filtreler. Yalnızca bu test modüllerine ait testler çalışır.

  • --root-directory <ROOT_PATH>

    --test-modules seçeneğinin kök dizinini belirtir. Yalnızca --test-modules seçeneğiyle kullanılabilir.

  • --max-parallel-test-modules <NUMBER>

    Paralel olarak çalışabilecek en fazla test modülü sayısını belirtir. Varsayılan değer: Environment.ProcessorCount.

  • --config-file <CONFIG_FILE>

    Test yürütme için kullanılacak yapılandırma dosyasını belirtir. Göreli bir yol sağlanırsa, geçerli dizine göre mutlak bir yola dönüştürülür. Yapılandırma dosyası ayarları hakkında daha fazla bilgi için bkz. testconfig.json.

  • --results-directory <RESULTS_DIRECTORY>

    Test sonuçlarının depolandığı dizini belirtir. Dizin yoksa oluşturulur. Göreli bir yol sağlanırsa, geçerli dizine göre mutlak bir yola dönüştürülür.

  • --diagnostic-output-directory <DIAGNOSTIC_OUTPUT_DIRECTORY>

    Tanılama çıktısının depolandığı dizini belirtir. Dizin yoksa oluşturulur. Göreli bir yol sağlanırsa, geçerli dizine göre mutlak bir yola dönüştürülür.

  • --minimum-expected-tests <NUMBER>

    Yürütülmesi gereken en az test sayısını belirtir. Gerçek test sayısı belirtilen minimumdan küçükse, test çalıştırması çıkış kodu 9 ile başarısız olur. Çıkış kodları hakkında daha fazla bilgi için bkz. MTP çıkış kodları.

  • -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.

  • -c|--configuration <CONFIGURATION>

    Derleme yapılandırmasını tanımlar. Çoğu proje için varsayılan değer Debug'dir, ancak project derleme yapılandırma ayarlarını geçersiz kılabilirsiniz.

  • -f|--framework <FRAMEWORK>

    Testleri çalıştırmak için hedef çerçevenin hedef çerçeve adı (TFM). Hedef çerçeve de project dosyasında belirtilmelidir.

  • --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.

  • -r|--runtime <RUNTIME_IDENTIFIER>

    Test etmek için hedef çalışma zamanı.

    kısa form -r .NET SDK 7'den itibaren kullanılabilir.

    Uyarı

    Genel RuntimeIdentifier özelliği olan bir çözüm için testleri çalıştırma (açıkça veya --archaracılığıyla , --runtimeveya --os) desteklenmez. Bunun yerine tek bir project düzeyinde RuntimeIdentifier ayarlayın.

  • -v|--verbosity <LEVEL>

    Komutun ayrıntı düzeyini ayarlar. İzin verilen değerler , q[uiet], m[inimal], n[ormal]ve d[etailed]diag[nostic]. Daha fazla bilgi için bkz. LoggerVerbosity.

  • --no-build

    Test project çalıştırılmadan önce derlenmediğini belirtir. Ayrıca --no-restore bayrağını örtük olarak ayarlar.

  • --no-restore

    komutu çalıştırılırken örtük geri yüklemenin yürütüldüğünü belirtir.

  • --no-ansi

    ANSI kaçış karakterlerinin ekrana çıkışını devre dışı bırakır.

  • --no-progress

    İlerleme durumunu ekrana raporlamayı devre dışı bırakır.

  • --output <VERBOSITY_LEVEL>

    Testleri bildirirken çıkış ayrıntı düzeyini belirtir. Geçerli değerler: Normal ve Detailed. Varsayılan değer: Normal.

  • --no-launch-profile

    Uygulamayı yapılandırmak için launchSettings.json kullanmayı denemeyin. Varsayılan olarak, launchSettings.json ortam değişkenlerini ve komut satırı bağımsız değişkenlerini test yürütülebilir dosyaya uygulayabilen kullanılır.

  • --no-launch-profile-arguments

    Uygulamayı çalıştırmak için başlatma profilinde tarafından commandLineArgs belirtilen bağımsız değişkenleri kullanmayın.

  • --property:<NAME>=<VALUE>

    Bir veya daha fazla MSBuild özelliği ayarlar. Seçeneği yineleyerek birden çok özellik belirtin:

    --property:<NAME1>=<VALUE1> --property:<NAME2>=<VALUE2>
    

    Kısa form -p için --propertykullanılabilir. Aynı durum /property:property=value için de geçerlidir ve kısa biçimi /p. Kullanılabilir bağımsız değişkenler hakkında daha fazla bilgiyi dotnet msbuild belgelerinde bulabilirsiniz.

  • -?|-h|--help

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

  • args

    Test uygulamalarına 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. Nelerin geçeceğime ilişkin daha fazla bilgi ve örnek için bkz. MTP'ye genel bakış ve MTP özellikleri.

    Tavsiye

    Belirli projeler için ek bağımsız değişkenler belirtmek için TestingPlatformCommandLineArguments MSBuild özelliğini kullanın. Bu özellik, çözümünüz test çerçevelerini (örneğin, MSTest ve xUnit.net) karıştırdığında veya yalnızca bazı projeler belirli bir uzantıya başvurduğunda kullanışlıdır. Daha fazla bilgi için bkz. Karma test çerçeveleri veya uzantıları olan çözümler.

Uyarı

Bir dosyada izleme günlüğünü etkinleştirmek için DOTNET_CLI_TEST_TRACEFILE ortam değişkenini kullanarak izleme dosyasının yolunu sağlayın.

Bağımsız değişkenleri test uygulamasına iletme

dotnet test tanımadığı tüm belirteçleri test uygulamasına iletir. Tanınmayan bir seçenek adı ve değeri arasında tanınan bir seçenek göründüğünde, tanınan seçeneğin kaldırılması, kalan belirteçlerin test uygulamasındaki seçeneklere bağlanma şeklini değiştirebilir. Bu belirsizliği önlemek için, test uygulaması bağımsız değişkenlerini değişmez değerden --sonra yerleştirin:

dotnet test --results-directory TestResults -- --report-trx --report-trx-filename A.trx

Aynı ayrıştırıcı davranışı ve dotnet buildiçin dotnet run de geçerlidir. Ayrıntılı bir örnek için bkz. Başvuruda dotnet runbağımsız değişkenleri uygulamaya iletme.

Örnekler

  • Testleri geçerli dizindeki project veya çözümde çalıştırın:

    dotnet test
    
  • testleri TestProject project çalıştırın:

    dotnet test --project ./TestProject/TestProject.csproj
    
  • testleri TestProjects çözümünde çalıştırın:

    dotnet test --solution ./TestProjects/TestProjects.sln
    
  • Derlemeyi kullanarak TestProject.dll testleri çalıştırın:

    dotnet test --test-modules "**/bin/**/Debug/net10.0/TestProject.dll"
    
  • Kök dizinle TestProject.dll derleme kullanarak testleri çalıştırın:

    dotnet test --test-modules "**/bin/**/Debug/net10.0/TestProject.dll" --root-directory "c:\code"
    
  • Geçerli dizindeki testleri kod kapsamıyla çalıştırın:

    dotnet test --coverage
    
  • Testleri çalıştırın ve sonuçları belirli bir dizinde depolayın:

    dotnet test --results-directory ./TestResults
    
  • Testleri belirli bir dizinde tanılama çıkışıyla çalıştırın:

    dotnet test --diagnostic-output-directory ./Diagnostics
    
  • Testleri çalıştırarak en az 10 testin yürütülmesini sağlama:

    dotnet test --minimum-expected-tests 10
    
  • TestProject için -bl (ikili günlük) bağımsız değişkenini sağlayarak testleri msbuild project çalıştırın:

    dotnet test --project ./TestProject/TestProject.csproj -bl
    
  • testleri TestProject project çalıştırın ve MSBuild DefineConstants özelliğini DEV olarak ayarlayın:

    dotnet test --project ./TestProject/TestProject.csproj -p:DefineConstants="DEV"
    

Ayrıca bakınız