Visual Studio Test görevi

Azure Pipelines

Visual Studio test çalıştırıcısı kullanarak birim ve işlev testlerini (selenium, appium, kodlanmış uı testi ve daha fazlasını) çalıştırmak için bu görevi kullanın. MSTest tabanlı testler dışında, xunit, nunit, chutzpah gibi Visual Studio test bağdaştırıcısı olan test çerçeveleri de yürütülebilir.

.NET Core Framework 'ü hedefleyen testler, . runsettings dosyasındauygun hedef Framework değeri belirtilerek yürütülebilir.

Testler, bu görevin 2. sürümü kullanılarak birden çok aracıda dağıtılabilir. daha fazla bilgi için bkz. Visual Studio Test görevi kullanarak testleri paralel olarak çalıştırma.

Önkoşulları denetleme

Windows kendi kendine barındırılan bir aracı kullanıyorsanız, makinenizde bu önkoşulun yüklü olduğundan emin olun:

Erişim

Aracının aşağıdaki özelliği olmalıdır:

VSTest

VSTest talebi iki şekilde karşılanabilir:

  1. Visual Studio, aracı makinesine yüklenir.

  2. işlem hattı tanımındaki Visual Studio Test platformu yükleyicisi görevini kullanarak.

YAML kod parçacığı

# Visual Studio Test
# Run unit and functional tests (Selenium, Appium, Coded UI test, etc.) using the Visual Studio Test (VsTest) runner. Test frameworks that have a Visual Studio test adapter such as MsTest, xUnit, NUnit, Chutzpah (for JavaScript tests using QUnit, Mocha and Jasmine), etc. can be run. Tests can be distributed on multiple agents using this task (version 2).
- task: VSTest@2
  inputs:
    #testSelector: 'testAssemblies' # Options: testAssemblies, testPlan, testRun
    #testAssemblyVer2: | # Required when testSelector == TestAssemblies
    #  **\*test*.dll
    #  !**\*TestAdapter.dll
    #  !**\obj\** 
    #testPlan: # Required when testSelector == TestPlan
    #testSuite: # Required when testSelector == TestPlan
    #testConfiguration: # Required when testSelector == TestPlan
    #tcmTestRun: '$(test.RunId)' # Optional
    #searchFolder: '$(System.DefaultWorkingDirectory)' 
    #testFiltercriteria: # Optional
    #runOnlyImpactedTests: False # Optional
    #runAllTestsAfterXBuilds: '50' # Optional
    #uiTests: false # Optional
    #vstestLocationMethod: 'version' # Optional. Options: version, location
    #vsTestVersion: 'latest' # Optional. Options: latest, 16.0, 15.0, 14.0, toolsInstaller
    #vstestLocation: # Optional
    #runSettingsFile: # Optional
    #overrideTestrunParameters: # Optional
    #pathtoCustomTestAdapters: # Optional
    #runInParallel: False # Optional
    #runTestsInIsolation: False # Optional
    #codeCoverageEnabled: False # Optional
    #otherConsoleOptions: # Optional
    #distributionBatchType: 'basedOnTestCases' # Optional. Options: basedOnTestCases, basedOnExecutionTime, basedOnAssembly
    #batchingBasedOnAgentsOption: 'autoBatchSize' # Optional. Options: autoBatchSize, customBatchSize
    #customBatchSizeValue: '10' # Required when distributionBatchType == BasedOnTestCases && BatchingBasedOnAgentsOption == CustomBatchSize
    #batchingBasedOnExecutionTimeOption: 'autoBatchSize' # Optional. Options: autoBatchSize, customTimeBatchSize
    #customRunTimePerBatchValue: '60' # Required when distributionBatchType == BasedOnExecutionTime && BatchingBasedOnExecutionTimeOption == CustomTimeBatchSize
    #dontDistribute: False # Optional
    #testRunTitle: # Optional
    #platform: # Optional
    #configuration: # Optional
    #publishRunAttachments: true # Optional
    #failOnMinTestsNotRun: false # Optional
    #minimumExpectedTests: '1' # Optional
    #diagnosticsEnabled: false # Optional
    #collectDumpOn: 'onAbortOnly' # Optional. Options: onAbortOnly, always, never
    #rerunFailedTests: False # Optional
    #rerunType: 'basedOnTestFailurePercentage' # Optional. Options: basedOnTestFailurePercentage, basedOnTestFailureCount
    #rerunFailedThreshold: '30' # Optional
    #rerunFailedTestCasesMaxLimit: '5' # Optional
    #rerunMaxAttempts: '3' # Optional

Bağımsız değişkenler

Bağımsız Değişken Description
testSelector
Kullanarak testleri seçin
Istenir Test derlemesi: Testlerinizi içeren bir veya daha fazla test derlemesi belirtmek için bu seçeneği kullanın. İsteğe bağlı olarak, yalnızca belirli testleri seçmek için bir filtre ölçütü belirtebilirsiniz.
Test planı: Test planınızdan ilişkili otomatikleştirilmiş test yöntemi olan testleri çalıştırmak için bu seçeneği kullanın. Testlerin test çalışması iş öğesiyle ilişkilendirilmesi hakkında daha fazla bilgi edinmek için bkz. otomatikleştirilmiş testleri test çalışmalarıyla ilişkilendirme.
Test çalıştırması:Testleri test planlarından çalıştırmakiçin bir ortam ayarlarken bu seçeneği kullanın. Bu seçenek, testleri sürekli tümleştirme/sürekli dağıtım (CI/CD) ardışık düzeninde çalıştırırken kullanılmamalıdır.
Varsayılan değer: testAssemblies
testAssemblyVer2
Test dosyaları
Istenir Belirtilen dosyalardan testleri çalıştırın. Sıralı testler ve Web testleri, .orderedtest sırasıyla ve dosyaları belirtilerek çalıştırılabilir .webtest . çalıştırmak için .webtest Visual Studio 2017 güncelleştirme 4 veya üzeri gerekir. Dosya yolları arama klasörüne görelidir. Birden çok satır minimatch deseni destekler. Daha Fazla Bilgi
Varsayılan değer: **\\*test*.dll\n!**\\*TestAdapter.dll\n!**\\obj\\**
testPlan
Test planı
Istenir Otomatikleştirilmiş test çalışmaları ile test paketleri içeren bir test planı seçin.
testSuite
Test paketi
Istenir Otomatikleştirilmiş test çalışmaları içeren bir veya daha fazla test paketi seçin. Test çalışması iş öğelerinin otomatikleştirilmiş bir test yöntemiyle ilişkilendirilmesi gerekir. Daha fazla bilgi edinin.
testConfiguration
Test yapılandırması
Istenir Test yapılandırması ' nı seçin.
tcmTestRun
Test çalıştırması
Seçim Test çalıştırma tabanlı seçim, Test planlarından otomatikleştirilmiş test çalıştırmalarıtetiklendiğinde kullanılır. Bu seçenek, CI/CD işlem hattındaki testleri çalıştırmak için kullanılamaz.
searchFolder
Arama klasörü
Istenir Test derlemelerini aramak için klasörü.
testFiltercriteria
Test filtresi ölçütleri
Seçim Test derlemelerinden testleri filtrelemek için ek ölçütler.
Örneğin: Priority=1|Name=MyTestMethod. Daha fazla bilgi
runOnlyImpactedTests
Yalnızca etkilenen Testleri Çalıştır
Seçim Otomatik olarak seçin ve yalnızca kod değişikliğini doğrulamak için gereken testleri çalıştırın. Daha fazla bilgi
runAllTestsAfterXBuilds
Tüm testlerin çalıştırılması gereken derleme sayısı
Seçim Tüm testlerin otomatik olarak çalıştırılacağı derleme sayısı. Test etkisi analizi, test çalışmaları ve kaynak kodu arasındaki eşlemeyi depolar. Düzenli aralıklarla, tüm testleri çalıştırarak eşlemeyi yeniden oluşturmanız önerilir.
uiTests
Test karışımı UI testleri içerir
Seçim UI testlerini çalıştırmak için, aracının otomatik oturum açma özelliği etkinken etkileşimli modda çalışacak şekilde ayarlandığından emin olun. Bir aracıyı etkileşimli olarak çalışacak şekilde ayarlamak, derleme/yayın kuyruğa alınmadan önce yapılmalıdır. Bu kutunun işaretlenmesi, aracıyı etkileşimli modda otomatik olarak yapılandırmaz. Görevdeki bu seçenek, yalnızca hatalardan kaçınmak üzere aracıyı uygun şekilde yapılandırmak için bir anımsatıcı görevi görecektir. VS 2015 ve 2017 havuzlarından barındırılan Windows aracıları, uı testlerini çalıştırmak için kullanılabilir.
vstestLocationMethod
Kullanarak test platformu seçin
Seçim Hangi test platformunun kullanılması gerektiğini belirtin.
vsTestVersion
Test platformu sürümü
Seçim kullanılacak Visual Studio testi sürümü. en son belirtilirse, nelerin yüklü olduğuna bağlı olarak Visual Studio 2017 veya Visual Studio 2015 ' i seçer. Visual Studio 2013 desteklenmez. aracıda Visual Studio gerekmeden testleri çalıştırmak için, Installed by tools installer yaml 'de kullanıcı arabirimi veya araçları yükleyicisi ' nde seçeneğini kullanın. test platformunu NuGet almak için ' Visual Studio test platformu yükleyicisi ' görevini eklediğinizden emin olun.
vstestLocation
vstest.console.exe yolu
Seçim VSTest yolunu belirtin.
runSettingsFile
Ayarlar dosyası
Seçim runsettingstestsettings Testlerle birlikte kullanılacak dosyanın yolu. Visual Studio 15,7 ' den başlayarak, tüm test türleri için runsettings kullanılması önerilir. . Testsettings dosyasını. runsettings dosyasına dönüştürme hakkında daha fazla bilgi edinmek için Bu konuyabakın.
overrideTestrunParameters
Test çalıştırması parametrelerini geçersiz kıl
Seçim Testsettings dosyasının runsettings dosyasının veya Properties bölümünün TestRunParameters bölümünde tanımlanan parametreleri geçersiz kılın.
Örneğin: -key1 value1 -key2 value2. Note: dosyada belirtilen özelliklere Visual Studio 2017 güncelleştirme 4 veya üzeri kullanılarak testcontext aracılığıyla erişilebilir
pathtoCustomTestAdapters
Özel test bağdaştırıcılarının yolu
Seçim Özel test bağdaştırıcılarının dizin yolu. Test Derlemeleriyle aynı klasörde bulunan bağdaştırıcılar otomatik olarak keşfedilir.
runInParallel
Testleri çok çekirdekli makinelerde paralel olarak çalıştır
Seçim Ayarlanırsa, testler makinenin kullanılabilir çekirdeklerini kullanarak paralel olarak çalışır. Bu, runsettings dosyanızda belirtilmişse MaxCpuCount değerini geçersiz kılar. Testlerin paralel olarak nasıl çalıştırıldığı hakkında daha fazla bilgi edinmek için buraya tıklayın.
runTestsInIsolation
Testleri yalıtımda Çalıştır
Seçim Testleri yalıtılmış bir işlemde çalıştırır. Bu vstest.console.exe işlem, testlerin bir hata üzerinde durmuş olma olasılığını azaltır, ancak testler daha yavaş çalışabilir. Bu seçenek şu anda çoklu aracı iş ayarıyla çalışırken kullanılamaz.
codeCoverageEnabled
Kod kapsamı etkin
Seçim Test çalıştırmasının kod kapsamı bilgilerini toplayın.
otherConsoleOptions
Diğer konsol seçenekleri
(İsteğe bağlı) Burada belgelene geçirilen vstest.console.exe diğer konsol vstest.console.exe Bu seçenekler desteklanmaz ve bir aracı işinin Çoklu aracı paralel ayarı kullanılarak testler çalıştırılırken veya Test planı seçeneği kullanılarak testler çalıştırılırken yoksayılır. Bunun yerine seçenekler bir ayarlar dosyası kullanılarak belirtilebilir.
distributionBatchType
Batch testleri
(İsteğe bağlı) Toplu iş, bir grup testtir. Bir test grubu, testlerini aynı anda çalıştırır ve toplu iş için sonuçlar yayımlanır. Görevin çalıştır olduğu iş birden çok aracı kullanmak üzere ayarlanırsa, her aracı paralel olarak çalıştırmak üzere kullanılabilir test toplu işlerini alır.
Test ve aracı sayısına göre: Test çalıştırmasına katılan test ve aracı sayısına göre basit toplu işlem.
Testlerin geçmiş çalışma zamanlarına göre: Bu toplu işlem, her toplu iş yaklaşık olarak eşit çalışma süresine sahip olacak şekilde test toplu işleri oluşturmak için geçmiş çalışma zamanlarını dikkate almaktadır.
Test derlemelerine göre: Bir derlemeden gelen testler birlikte toplu olarak gruplandı."
Varsayılan değer: basedOnTestCases
batchingBasedOnAgentsOption
Batch seçenekleri
(İsteğe bağlı) Test çalıştırmasına katılan test ve aracı sayısına göre basit toplu işlem. Toplu iş boyutu otomatik olarak belirlenecek olduğunda, her toplu iş testleri (total number of tests / number of agents) içerir. Toplu iş boyutu belirtilirse, her toplu iş belirtilen sayıda test içerir.
Varsayılan değer: autoBatchSize
customBatchSizeValue
Toplu iş başına test sayısı
(Gerekli) Toplu iş boyutunu belirtme
Varsayılan değer: 10
batchingBasedOnExecutionTimeOption
Batch seçenekleri
(İsteğe bağlı) Bu toplu işlem, her toplu iş yaklaşık olarak eşit çalışma süresine sahip olacak şekilde test toplu işleri oluşturmak için geçmiş çalışma zamanlarını dikkate almaktadır. Hızlı çalışan testler birlikte toplu işlerken, daha uzun süre çalışan testler ayrı bir toplu işleme ait olabilir. Bu seçenek çok aracılı iş ayarıyla birlikte kullanılırken, toplam test süresi en düşük düzeye indirildi.
Varsayılan değer: autoBatchSize
customRunTimePerBatchValue
Toplu iş başına çalışma süresi (sn)
(Gerekli) Toplu iş başına çalışma süresi (sn) belirtme
Varsayılan değer: 60
dontDistribute
İşte birden çok aracı kullanılırken testleri dağıtmak yerine çoğaltma
(İsteğe bağlı) Görev çok aracılı bir işte çalıştır çalıştırıken, bu seçeneğin tercihi testleri aracılar arasında dağıtmaz.
Seçilen testlerin her biri her aracıda yinelenir.
Aracı işi paralellik veya çoklu yapılandırma seçeneğiyle çalıştıracak şekilde yapılandırıldığında bu seçenek geçerli değildir.
Varsayılan değer: False
testRunTitle
Test çalıştırması başlığı
(İsteğe bağlı) Test çalıştırması için bir ad girin
platform
Derleme platformu
(İsteğe bağlı) Testlerin raporlandığı platform oluşturma. Derleme görevinize platform için bir değişken tanımladıysanız burada bunu kullanın.
configuration
Yapı yapılandırması
(İsteğe bağlı) Testlerin raporlandığı derleme yapılandırması. Derleme görevinize yapılandırma için bir değişken tanımladıysanız burada bunu kullanın.
publishRunAttachments
Upload ekleri ekleme
(İsteğe bağlı) Çalıştırma düzeyi eklerini yayımlamayı kabul edin/devre dışı bırakma.
Varsayılan değer: true
failOnMinTestsNotRun
En az sayıda test çalıştırnmasa görevi başarısız olur
(İsteğe bağlı) En az sayıda test çalıştırnmasa görevi başarısız yapmak için bu seçeneği kullanın. Görev girişlerinde veya temel alınan test bağdaştırıcısı bağımlılıklarında yapılan değişiklikler, istenen testlerin yalnızca bir alt kümesine yol açsa bu yararlı olabilir.
Varsayılan değer: False
minimumExpectedTests
Minimum test #
(İsteğe bağlı) Görevin başarılı olması için çalıştıracak en düşük test #a0 testlerini belirtin. Toplam test çalıştırması başarılı, başarısız ve durdurulan testlerin toplamı olarak hesaplanır.
Varsayılan değer: 1
diagnosticsEnabled
Yıkıcı hatalarda gelişmiş tanılamalar toplama
(İsteğe bağlı) Test kilitlenmesi gibi yıkıcı hataları gidermek üzere tanılama verilerini toplamayı açmak için bu seçeneği kullanın.
Bu seçenek işaretli olduğunda, bir dizi XML dosyası oluşturulur ve test çalıştırmasına iliştirilmiş olur. Sıra dosyası, olası bir hata testinin tanımlanabilecek şekilde testlerin çalışma sırası hakkında bilgiler içerir.
Varsayılan değer: false
collectDumpOn
İşlem dökümlerini toplama ve test çalıştırması raporuna ekleme
(İsteğe bağlı) Daha fazla analiz için kullanılan bir mini döküm toplamak için bu seçeneği kullanın.
Yalnızca durdurmada:Mini döküm yalnızca test çalıştırması durdurularak toplanır.
Herzaman: Test çalıştırması tamamlandıktan bağımsız olarak mini döküm her zaman toplanır.
Hiçbirzaman: Test çalıştırması tamamlandıktan bağımsız olarak mini döküm toplanmaz
rerunFailedTests
Başarısız testleri yeniden çalıştırma
(İsteğe bağlı) Bu seçenek seçilip başarısız olan testler başarılı olana veya deneme sayısı üst sayısına ulaşıncaya kadar yeniden çalışır.
Varsayılan değer: False
rerunType
Test hataları belirtilen eşiği aşarsa yeniden çalıştır
(İsteğe bağlı) Hata oranı belirtilen eşiği aştı olduğunda testleri yeniden çalıştırmayı önlemek için bu seçeneği kullanın. Bu durum, herhangi bir ortam sorunu çok büyük hatalara yol açıyorsa geçerlidir. basedOnTestFailureCount ile bir eşik olarak başarısız test sayısı veya başarısız test sayısı ile % basedOnTestFailurePercentage hatalarını belirtebilirsiniz.
Varsayılan değer: basedOnTestFailurePercentage
rerunFailedThreshold
% hata
(İsteğe bağlı) Hata oranı belirtilen eşiği aştı olduğunda testleri yeniden çalıştırmayı önlemek için bu seçeneği kullanın. Bu durum, herhangi bir ortam sorunu çok büyük hatalara yol açıyorsa geçerlidir
Varsayılan değer: 30
rerunFailedTestCasesMaxLimit
Başarısız test sayısı
(İsteğe bağlı) Başarısız test çalışmalarının sayısı belirtilen sınırı aştıklarında testleri yeniden çalıştırmayı önlemek için bu seçeneği kullanın. Bu, herhangi bir ortam sorunu büyük hatalara yol açsa ve rerunType yeniden çalıştırFailedTestCasesMaxLimit ise geçerlidir.
Varsayılan değer: 5
rerunMaxAttempts
En fazla deneme sayısı
(İsteğe bağlı) Başarısız bir testin yeniden denemesi gereken maksimum # sayısı belirtin. Bir test, deneme sayısı üst sayısına ulaşmadan önce geçerse, daha fazla yeniden çalıştırlanmaz.
Varsayılan değer: 3

Açık kaynak

Bu görev, üzerinde açık kaynak GitHub. Geri bildirim ve katkılar açıktır.

SSS

Veri kaynağı olarak TestCase kullanan testleri nasıl çalıştırabilirsiniz?

Veri kaynağı olarak TestCase kullanan otomatikleştirilmiş testler çalıştırmak için aşağıdakiler gereklidir:

  1. Aracı makinede Visual Studio 2017.6 veya daha yüksek bir 2017 veya daha yüksek bir 2017 gerekir. Visual Studio Test Platformu Yükleyicisi görevi, veri kaynağı olarak TestCase kullanan testleri çalıştırmak için kullanılamaz.

  2. "İş Öğeleri (tam)" kapsamı için yetkilendirilmiş bir PAT oluşturun.

  3. Önceki adımda oluşturulan PAT değerine ayarlanmış Test.TestCaseAccessToken adlı güvenli bir Derleme veya Yayın değişkeni ekleyin.

Veri odaklı xUnit ve NUnit testlerini bazı görev seçenekleriyle birlikte çalıştırarak sorunlarla ihtiyacım var. Bilinen sınırlamalar var mı?

xUnit ve NUnit test çerçevelerini kullanan veri odaklı testlerin bilinen bazı sınırlamaları vardır ve aşağıdaki görev seçenekleriyle kullanılamaz:

  1. Başarısız testleri yeniden çalıştırma.

  2. Testleri birden çok aracıya dağıtma ve toplu işlem seçenekleri.

  3. Test Etkisi Analizi

Yukarıdaki sınırlamalar, bu test çerçevelerinin bağdaştırıcılarının veri odaklı testleri bulma ve bildirme adımlarıdır.