Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
| 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.