是否有人在 Ctrl-R、T 运行时遇到问题,当它设置为异步时运行特定的本地突出显示的测试

本文关键字:异步 运行 显示 测试 设置 Ctrl-R 运行时 问题 遇到 是否 | 更新日期: 2023-09-27 18:33:28

我今天注意到 GUI 中突出显示的测试方法上的 Ctrl-R、Ctrl-T 无法调试我刚刚编写的测试,当它看起来像:

 [TestMethod]
 public async void Test()
    {
          await asyncMethod();
    }

项目生成,但测试未运行。在任何地方都找不到失败消息或错误消息。

如果我只是删除异步关键字,那么一切正常。这是怎么回事?

在代码中,我正在等待我的异步调用。我不明白为什么测试运行者无法处理它。

编辑:

查看测试输出后,消息如下:

UTA007:类 blah 中定义的方法 blah 没有正确的签名。标有 [TestMethod] 属性的测试方法必须是非静态的、公共的、返回类型为 void,并且不应采用任何参数。示例:public void Test.Class1.Test((。此外,如果运行异步单元测试,则返回类型必须为 Task。示例:公共异步任务测试.类1.测试2((=========== 发现测试完成:找到 3 个 (0:00:00.1367583( =

==========

我通常不看它,Visual Studio 希望更频繁地向我显示构建输出和错误。

是否有人在 Ctrl-R、T 运行时遇到问题,当它设置为异步时运行特定的本地突出显示的测试

测试发现过程不允许async void单元测试;我相信它会在"输出"窗口中放置警告。由于测试发现跳过了async void方法,因此它实际上不会运行。

对于异步单元测试,请使用 async Task 而不是 async void 。我在最近的MSDN文章中有关于这个主题的更多详细信息。