MSTEST0054:使用 TestContext.CancellationToken 的取消令牌

资产 价值
规则 ID MSTEST0054
标题 使用 TestContext.CancellationToken 而不是 TestContext.CancellationTokenSource.Token
类别 Usage
修复是中断修复还是非中断修复 Non-breaking
默认启用 是的
默认严重性 信息
是在版本 中引入的 3.11.0
有修复代码的办法吗 是的

原因

使用CancellationToken访问TestContext.CancellationTokenSource.Token,而不是使用TestContext.CancellationToken属性。

规则说明

MSTest 通过 TestContext.CancellationToken 属性提供取消令牌。 不建议访问TestContext.CancellationTokenSource,并且它可能会在将来的版本中被移除。 相比TestContext.CancellationTokenTestContext.CancellationTokenSource.Token使用起来也更简单。

如何修复违规行为

使用属性 TestContext.CancellationToken 而不是 TestContext.CancellationTokenSource.Token.

例如,更改以下项:

public TestContext TestContext { get; set; }

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

更改为:

public TestContext TestContext { get; set; }

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

何时禁止显示警告

不要禁止显示此规则的警告。 不建议使用 CancellationTokenSource 属性,并可能在将来的版本中删除。