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 özellik , Microsoft.Testing.Extensions.OpenTelemetry NuGet paketini gerektirir.
Bu uzantı, test çalıştırmalarının standart OpenTelemetry SDK'sı aracılığıyla iz ve metrik yaymasına olanak tanıyan OpenTelemetry ile Microsoft.Testing.Platform (MTP) bütünleştirir.
Uyarı
Bu uzantı, 2.1.0 sürümünden itibaren MTP'de kullanılabilir.
Önemli
MTP 2.4.0 sürümünden itibaren OpenTelemetry uzantısı MTP sürümüne uyar ve genel giriş noktaları artık deneysel değildir.
Sağlayıcı sahipliğini seçme
OpenTelemetry sağlayıcılarına MTP'nin mi yoksa uygulamanızın mı sahip olduğunu seçin.
MTP'ye ait sağlayıcıları kullanma
Otomatik oluşturulan giriş noktasını (<GenerateTestingPlatformEntryPoint>false</GenerateTestingPlatformEntryPoint>) devre dışı bırakın ve AddOpenTelemetryProvider yönteminizde Main'i çağırın:
var builder = await TestApplication.CreateBuilderAsync(args);
builder.AddOpenTelemetryProvider(
withTracing: tracing => tracing
.AddTestingPlatformInstrumentation()
.AddConsoleExporter(),
withMetrics: metrics => metrics
.AddTestingPlatformInstrumentation()
.AddConsoleExporter()
);
using var app = await builder.BuildAsync();
return await app.RunAsync();
Enstrümantasyonu, kaynak özniteliklerini ve standart OTEL_* ortam değişkenlerini kullanarak bir OTLP dışa aktarıcısını yapılandırmak için şunu çağırın:
builder.AddOpenTelemetryProviderFromEnvironment();
Yöntem, yalnızca bir dışa aktarıcı yapılandırdığınızda veya bir yapılandırma geri çağrısı ilettiğinizde enstrümantasyon ekler; böylece bazı ortamlarda telemetri dışa aktarılmasa bile kaydını uygulamada tutabilirsiniz.
Uygulamaya ait sağlayıcıları kullanma
MTP 2.5 önizleme sürümünden itibaren, uygulamanız OpenTelemetry'yi zaten AddTestingPlatformDiagnostics ServiceDefaults, Microsoft.Extensions.Hosting veya başka bir bileşim kökü aracılığıyla yapılandırıyorsa Aspire çağrısı yapın. Bu yöntem, TracerProvider etkinlik kaynağını ve ölçeri, MeterProvider veya Microsoft.Testing.Platform oluşturmadan, boşaltmadan ya da ortadan kaldırmadan etkinleştirir.
Uygulamaya ait sağlayıcıyı, izleme ve metrik oluşturucularında AddTestingPlatformInstrumentation ile abone edin. Uygulama, sağlayıcıları, dışa aktarıcıları, kaynak kimliği ve bertarafı üzerindeki sahipliği elinde tutar.
MSBuild tarafından oluşturulan barındırılan bir giriş noktası için Microsoft.Testing.Extensions.Hosting öğesine başvurun, TestingPlatformHostFactory öğesini ana makine fabrikası yöntemine ayarlayın ve şunu ayarlayın:
<TestingPlatformOpenTelemetryMode>HostOwned</TestingPlatformOpenTelemetryMode>
HostOwned yalnızca AddTestingPlatformDiagnostics öğesini çağırır; sağlayıcılar oluşturmaz veya ana bilgisayarın kaynak kimliğini değiştirmez. Ana makine yaşam döngüsü ve fabrika gereksinimleri için bkz. Ana makine entegrasyonu.
API
AddTestingPlatformDiagnostics
MTP'nin etkinlik kaynağını ve ölçümlerini, sağlayıcı sahipliğini MTP'ye aktarmadan uygulamaya ait dinleyiciler veya OpenTelemetry sağlayıcıları için etkinleştirir.
AddOpenTelemetryProvider
OpenTelemetry sağlayıcısını ITestApplicationBuilder üzerinde kaydeder. İsteğe bağlı iki geri çağırma kabul eder:
-
withTracing: dağıtılmış izlemeyi yapılandırırTracerProviderBuilder. -
withMetrics: ölçüm toplama içinMeterProviderBuilderyapılandırır.
AddTestingPlatformInstrumentation
TracerProviderBuilder veya MeterProviderBuilder öğesini çağırarak yerleşik Microsoft.Testing.Platform etkinlik kaynağına ve ölçüme abone olun.
AddTestingPlatformResource
Test derlemesi, ana bilgisayar, işletim sistemi ve çalışma zamanı özniteliklerini eklemek için ResourceBuilder öğesini çağırın. Algılayıcı ayrıca GitHub Actions, Azure Pipelines, GitLab CI ve Jenkins için CI sağlayıcısı, işlem hattı, dal ve işleme bilgilerini tanımlar.
Odaklanmış kaynak yardımcıları
Uygulamaya ait bir sağlayıcı için, teste özgü kimlik eklemek üzere AddTestingPlatformCIResource ve CI ile kaynak denetimi köken bilgisi eklemek üzere AddTestingPlatformTestResource çağırın. Bu odaklanmış yardımcılar, uygulamaya ait service.*, , host.*os.*veya process.* özniteliklerini değiştirmez.
AddOpenTelemetryProviderFromEnvironment
Standart OpenTelemetry ortam değişkenlerinden izleme, ölçümler, kaynak algılama ve bir OTLP dışa aktarıcısını kaydeder.
OTEL_SDK_DISABLED=true tümleştirmeyi devre dışı bırakır. Dışa aktarmayı etkinleştirmek için OTEL_METRICS_EXPORTER, OTEL_EXPORTER_OTLP_ENDPOINT veya OTEL_TRACES_EXPORTER yapılandırın.
Etkinlik kaynağı ve ölçümü
Uzantı, aşağıdakiler altında telemetri yayar:
- Etkinlik kaynağı:
Microsoft.Testing.Platform - Metre:
Microsoft.Testing.Platform
Anlamsal kurallar
MTP, test.case.result.status, test.suite.name, code.line.number, code.stacktrace, code.function.name, code.file.path, test.case.name ve error.type dahil olmak üzere, bir kuralın bulunduğu durumlarda standart OpenTelemetry test ve kod özniteliklerini yayar. Başarısız testler, span durumunu Error olarak ayarlar ve bir exception olayı ekler.
MTP, kuralları OpenTelemetry'nin tanımlamadığı kavramlar için ek sonuç durumları (skipped, error, timeout, cancelledve ) ve unknowntest öznitelikleriyle genişletir. Mevcut panoları korumak için eski öznitelik ve araç adları varsayılan olarak etkin kalır.
Başlatma işlemi TRACESTATE ve TRACEPARENT sağladığında MTP, test çalıştırmasını ilişkisiz bir kök iz başlatmak yerine bu izin altına yerleştirir.
MSTest yürütme süreleri
MSTest 4.5 ve MTP 2.5 önizlemesi ile başlayan yerel MSTest çalıştırmaları, her test yürütmesi için tek bir kurallı MTP'ye ait etkinlik kullanır. MSTest, test oluşturucuyu, başlatmayı, test yöntemini, temizlemeyi ve özel TestMethodAttribute kodu çalıştırırken etkinliği geçerli hale getirir.
HttpClient, SQL, Entity Framework, WCF ve özel etkinlikler otomatik olarak araçlandığından, bunlar test etkinliğinin alt öğeleri haline gelir.
MTP, nihai sonucu, zamanlama bilgilerini, çıktıyı ve artefaktları aynı etkinliğe ekler ve etkinliği, MSTest’in kaydettiği yürütme bitiş zamanında durdurur. Bu davranış, yinelenen çerçeve ve sonuç kapsamlarını önler ve eşzamansız sonuç işlemenin test süresini yapay olarak uzatmasının önüne geçer.
Kurallı yürütme API'sini kullanmayan test çerçeveleri uyumluluk topolojisini korur: çerçeve yürütme etkinliği ve MTP sonuç etkinliği eşdüzey kalır ve sonuç etkinliği, çerçeve devam eden güncelleştirmeyi yayımladığında geçerli olan etkinliğe bağlanır.
Üretilen metrikler
| Araç | Türü | Birim | Description |
|---|---|---|---|
test.case.duration |
Histogram | s |
Sonuç durumuna ve test paketine göre gruplanmış test süresi. |
test.case.result.count |
Counter | {test} |
Tamamlanan testler, sonuç durumuna ve pakete göre gruplandırılır. |
test.case.active |
UpDownCounter | {test} |
Çalışmakta olan testler. |
test.run.duration |
Histogram | s |
Çalıştırma süresi, sonuç durumuna ve çıkış koduna göre gruplandırılır. |
test.case.retry.count |
Counter | {test} |
Yeniden deneme uzantısı tarafından başka bir deneme için zamanlanmış testler. |
Ortam ayarları
| Ortam değişkeni | Varsayılan | Description |
|---|---|---|
TRACEPARENT, TRACESTATE |
Ayarı kaldır | Ana çalıştırma için W3C iz bağlamı. |
TESTINGPLATFORM_OTEL_CAPTURE_TEST_OUTPUT |
1 |
Yakalanan standart çıkışı ve hatayı test aralıklarına ekler. Çıktı gizli bilgiler içerebilecekse 0 olarak ayarlayın. |
TESTINGPLATFORM_OTEL_ATTRIBUTE_VALUE_LENGTH_LIMIT |
8192 |
Bir dize özniteliği için tutulan en fazla karakteri ayarlar. |
TESTINGPLATFORM_OTEL_EMIT_LEGACY_ATTRIBUTES |
1 |
Anlamsal konvansiyon adlarının yanı sıra eski öznitelik ve enstrüman adlarını da yayar. |
OTEL_SDK_DISABLED |
Ayarı kaldır |
true OpenTelemetry SDK'sını devre dışı bırakmak için olarak ayarlayın. |
OTEL_SERVICE_NAME |
Ayarı kaldır | Hizmet adını geçersiz kılar. |
OTEL_EXPORTER_OTLP_ENDPOINT |
Ayarı kaldır | OTLP uç noktasını ayarlar. |
OTEL_TRACES_EXPORTER, OTEL_METRICS_EXPORTER |
Ayarı kaldır | İz ve metrik dışa aktarıcılarını seçer. |