Microsoft. Testing.Platform (MTP) yapılandırma ayarları

MTP, test platformunun davranışını yapılandırmak için yapılandırma dosyalarının ve ortam değişkenlerinin kullanımını destekler. Bu makalede, test platformunu yapılandırmak için kullanabileceğiniz yapılandırma ayarları açıklanmaktadır.

testconfig.json

Test platformu, test platformunun davranışını yapılandırmak için [appname].testconfig.json adlı bir yapılandırma dosyası kullanır. testconfig.json dosyası, test platformu yapılandırma ayarlarını içeren bir JSON dosyasıdır.

testconfig.json dosyası aşağıdaki yapıya sahiptir:

{
    "platformOptions": {
        "resultDirectory": "./TestResults"
    }
}

Platform, test projesinin çıkış dizininde (yürütülebilir dosyaya yakın) bulunan [appname].testconfig.json dosyasını otomatik olarak algılar ve yükler.

Microsoft.Testing.Platform.MSBuildkullanırken, otomatik olarak [appname].testconfig.json olarak yeniden adlandırılacak ve test projesinin çıkış dizinine taşınacak bir testconfig.json dosyası oluşturabilirsiniz.

MTP 1.5'den başlayarak, komut satırı bağımsız değişkenini --config-file kullanarak testconfig.jsonyolunu belirtebilirsiniz. Bu dosya [appname].testconfig.json dosyasından önceliklidir.

Not

[appname].testconfig.json dosyasının üzerine sonraki derlemelerde yazılacaktır.

Merkezi bir testconfig.json kullanın

Birden çok test projesi arasında paylaşılacak tek bir testconfig.json kullanmak istiyorsanız, bunu merkezi bir konuma yerleştirebilir ve --config-file aracılığıyla iletebilirsiniz. MSBuild kullanılabilir olduğunda (örneğin, dotnet test veya dotnet run), argümanı otomatik olarak geçirmek için TestingPlatformCommandLineArguments MSBuild özelliğini kullanabilirsiniz. Bunu depo kökünde bir Directory.Build.props'a eklemek, tüm test projelerinin aynı yapılandırmayı kullanmasını sağlar:

<PropertyGroup>
  <TestingPlatformCommandLineArguments>
    $(TestingPlatformCommandLineArguments) --config-file $(MSBuildThisFileDirectory)testconfig.json
  </TestingPlatformCommandLineArguments>
</PropertyGroup>

Yapılandırma önceliği

Aynı ayar birden çok şekilde belirtilebiliyorsa, MTP bunu aşağıdaki sırayla çözümler (ilk eşleşme kazanır):

  1. Komut satırı argümanları (örneğin, --results-directory)
  2. Ortam değişkenleri
  3. testconfig.json ayarları
  4. Yerleşik varsayılanlar

Platform seçenekleri

platformOptions testconfig.json dosyasının bölümü, test platformunun temel davranışını yapılandırıyor. Aşağıdaki tabloda desteklenen tüm platform seçenekleri listelenmektedir:

Giriş Varsayılan Description
resultDirectory TestResults Test sonuçlarının yerleştirildiği dizin. Geçerli çalışma dizinine göre çözümlenen göreli bir yol veya mutlak bir yol olabilir. Komut --results-directory satırı seçeneği önceliklidir.
exitProcessOnUnhandledException false true olarak ayarlandığında, test ana bilgisayarı süreci, sorunsuz bir şekilde kapanmasına izin vermek yerine yakalanmayan özel durumlarda hemen sonlanır. Ortam TESTINGPLATFORM_EXIT_PROCESS_ON_UNHANDLED_EXCEPTION değişkeni (değerler 1 veya 0) önceliklidir.

Not

Gelişmiş senaryolar için ek iç platform seçenekleri vardır (test ana bilgisayar denetleyicileri için adlandırılmış kanal zaman aşımları gibi). Bu seçenekler altyapı kullanımına yöneliktir ve burada ele alınmaz.

Örnek:

{
  "platformOptions": {
    "resultDirectory": "../../TestResults",
    "exitProcessOnUnhandledException": false
  }
}

Uzantı seçenekleri yalnızca komut satırı arabirimi (CLI) üzerinden kullanılabilir

Çökme dökümü, yanıt vermeme dökümü, yeniden deneme, TRX raporları ve kod kapsamı gibi uzantı özellikleri testconfig.json aracılığıyla yapılandırılabilir değildir. Bu özellikler yalnızca komut satırı argümanları ile yapılandırılır.

Komut satırı seçeneklerine ilişkin eksiksiz başvuru için MTP CLI komut satırı seçenekleri başvurusuna bakın.

Çerçeveye özgü ayarları test edin

Test çerçeveleri ,testconfig.json dosyasında kendi yapılandırma bölümlerini tanımlayabilir. Test çerçevenizin belgelerine bakın:

Örnek testconfig.json

Aşağıdaki örnekte platform seçeneklerini ve MSTest ayarlarını yapılandıran bir testconfig.json dosyası gösterilmektedir:

{
  "platformOptions": {
    "resultDirectory": "./TestResults"
  },
  "mstest": {
    "parallelism": {
      "enabled": true,
      "workers": 4,
      "scope": "method"
    },
    "timeout": {
      "test": 30000
    },
    "execution": {
      "considerFixturesAsSpecialTests": true
    }
  }
}

.runsettings'ten testconfig.json'a geçiş

Bir .runsettings dosyasından geçiş gerçekleştiriyorsanız, aşağıdaki tablo ortak ayarları testconfig.json eşdeğerleriyle veya alternatifleriyle eşler:

.runsettings ayarı testconfig.json eşdeğeri Notlar
RunConfiguration/ResultsDirectory platformOptions.resultDirectory
RunConfiguration/MaxCpuCount Eşdeğeri yok İşlem düzeyinde paralellik, dotnet test --max-parallel-test-modules veya MSBuild /m seçeneği ile denetlenir.
MSTest/* mstest.* Bkz . MSTest'i yapılandırma — testconfig.json.
xUnit/* xUnit.* bkz. xUnit.net testconfig.json.
LoggerRunSettings/Loggers Yalnızca CLI Veya benzer CLI seçeneklerini kullanın --report-trx .
DataCollectionRunSettings (suç) Yalnızca CLI --crashdump ve --hangdump CLI seçeneklerini kullanın. Bkz. Çökme ve yanıt vermeme dökümleri.
DataCollectionRunSettings (kapsam) Yalnızca CLI CLI seçeneğini kullanın --coverage . Bkz. Kod kapsamı.
TestRunParameters --test-parameter CLI Komut satırında kullanın --test-parameter key=value .

Ortam değişkenleri

Ortam değişkenleri bazı çalışma zamanı yapılandırma bilgilerini sağlamak için kullanılabilir.

Not

Ortam değişkenleri, testconfig.json dosyasındaki yapılandırma ayarlarından önceliklidir.

TESTINGPLATFORM_EXIT_PROCESS_ON_UNHANDLED_EXCEPTION ortam değişkeni

1 olarak ayarlandığında, test ana bilgisayar işlemi işlenmeyen özel durumlarda hemen sonlanır. 0 olarak ayarlandığında platformun sorunsuz şekilde kapatılmasına izin verilir. Bu ayar yapılandırmadan önceliklidir platformOptions:exitProcessOnUnhandledException .

TESTINGPLATFORM_DEFAULT_HANG_TIMEOUT ortam değişkeni

Test ana bilgisayarı denetleyicisi ile test konağı arasındaki adlandırılmış kanal bağlantıları için kullanılan varsayılan zaman aşımını (300 saniye) geçersiz kılar. Değerin uyumlu bir TimeSpandize olması gerekir.

TESTINGPLATFORM_UI_LANGUAGE ortam değişkeni

MTP 1.5'den başlayarak, bu ortam değişkeni gibi en-usbir yerel ayar değeri kullanarak iletileri ve günlükleri görüntülemek için platformun dilini ayarlar. Bu dil, Visual Studio ve .NET SDK dillerinden önceliklidir. Desteklenen değerler Visual Studio ile aynıdır. Daha fazla bilgi için, Visual Studio yükleme belgelerinde yükleyici dilini değiştirme bölümüne bakın.

TESTINGPLATFORM_DIAGNOSTIC ortam değişkeni

1olarak ayarlanırsa, tanılama günlüğünü etkinleştirir.

TESTINGPLATFORM_DIAGNOSTIC_VERBOSITY ortam değişkeni

Tanılama etkinleştirildiğinde ayrıntı düzeyini tanımlar. Kullanılabilir değerler Trace, Debug, Information, Warning, Errorveya Critical' dır.

TESTINGPLATFORM_DIAGNOSTIC_OUTPUT_DIRECTORY ortam değişkeni

Tanılama günlüğünün çıkış dizini. Belirtilmezse, dosya varsayılan TestResults dizininde oluşturulur.

TESTINGPLATFORM_DIAGNOSTIC_OUTPUT_FILEPREFIX ortam değişkeni

Günlük dosyası adının ön eki. Varsayılan olarak "log_" değerini alır.

TESTINGPLATFORM_DIAGNOSTIC_FILELOGGER_SYNCHRONOUSWRITE ortam değişkeni

Yerleşik dosya günlükçüsüsünü zaman uyumlu bir şekilde günlükleri yazmaya zorlar. İşlemin çöktüğü durumlarda (yani günlük girdilerini kaybetmek istemediğiniz senaryolarda) kullanışlıdır. Bu, test yürütmeyi yavaşlatır.

TESTINGPLATFORM_EXITCODE_IGNORE ortam değişkeni

Yok sayılacak, noktalı virgülle ayrılmış çıkış kodları listesi. Bir çıkış kodu yoksayıldığında, süreç bunun yerine 0 döndürür. Örneğin, TESTINGPLATFORM_EXITCODE_IGNORE=2;8 test hatalarını ve test yapılmayan senaryoları yoksayar.

Not

Tanılamayla ilgili ortam değişkenleri, karşılık gelen --diagnostic-* komut satırı bağımsız değişkenlerinden önceliklidir.

Ayrıca bakınız