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

标签 c# visual-studio-2013 mstest

今天我注意到 GUI 中突出显示的测试方法上的 Ctrl-R、Ctrl-T 不会调试我刚刚编写的测试,如下所示:

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

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

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

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

编辑:

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

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

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

最佳答案

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

对于异步单元测试,请使用async Task 而不是async void。我有更多详细信息my recent MSDN article on the subject .

关于c# - 当设置为异步时,是否有人在使用 Ctrl-R、T 运行特定的本地突出显示的测试时遇到问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27328021/

相关文章:

c# - 无尽的(几乎)字母数字计数器

c# - StackPanel.Children.Clear() 无法正常工作

C# 有没有办法用文本框搜索所有 ListView 项目?

asp.net - Visual Studio 2013 ASP.NET 项目中 Antlr 包的用途是什么?

unit-testing - 如何在VS2013中自动运行单元测试

c# - 无法在 MSTest 项目中加载文件或程序集 'Microsoft.Extensions.Configuration.Abstractions, Version=3.1.0.0'

mstest - MSTest DeploymentItem不会将文件复制到输出目录

c# - 使用 C# 驱动程序是复制和复制 MongoDB 集合的更好方法吗?

c++ - Visual Studio 2013 中的函数模板替换错误?

c# - Visual Studio Ordered 测试运行两次