MSTEST0054: Użyj Tokenu Anulowania z elementu TestContext.CancellationToken

Majątek Wartość
Identyfikator reguły MSTEST0054
Tytuł Używaj TestContext.CancellationToken zamiast TestContext.CancellationTokenSource.Token
Kategoria Usage
Poprawka jest przełomowa lub nieprzełomowa Non-breaking
Domyślnie włączone Tak
domyślna ciężkość Informacje
wprowadzone w wersji 3.11.0
Czy istnieje poprawka kodu Tak

Przyczyna

Uzyskiwanie dostępu do CancellationToken za pośrednictwem TestContext.CancellationTokenSource.Token zamiast używania atrybutu TestContext.CancellationToken.

Opis reguły

Narzędzie MSTest kontroluje anulowanie wykonywania testu. Aby umożliwić operacji obserwowanie tego anulowania, przekaż TestContext.CancellationToken je bezpośrednio zamiast uzyskiwać dostęp do struktury CancellationTokenSource.

Element umożliwia CancellationToken kodowi obserwowanie anulowania bez uwidaczniania operacji anulowania i usuwania źródła. Właściwość bezpośrednia wyraża granicę własności i unika zależności od starszej właściwości źródłowej, gdy wszystko, czego potrzebujesz, to jego token.

Jak naprawić naruszenia

Użyj właściwości TestContext.CancellationToken zamiast TestContext.CancellationTokenSource.Token.

Na przykład zmień następujące elementy:

public TestContext TestContext { get; set; }

[TestMethod]
public async Task TestMethod()
{
    await Task.Delay(1000, TestContext.CancellationTokenSource.Token);
}

Do tego:

public TestContext TestContext { get; set; }

[TestMethod]
public async Task TestMethod()
{
    await Task.Delay(1000, TestContext.CancellationToken);
}

Kiedy pomijać ostrzeżenia

Nie pomijaj ostrzeżeń z tej reguły. Użycie CancellationTokenSource właściwości nie jest zalecane i może zostać usunięte w przyszłej wersji.