| 资产 | 价值 |
|---|---|
| 规则 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.CancellationToken,TestContext.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 属性,并可能在将来的版本中删除。