我有一组相当标准的单元测试。
[TestClass]
public class MyTestClass
{
[TestMethod]
public async Task MyClass_DoesStuff()
{
//...
await foo;
}
}
一切都很正常,但后来我需要降级到.NET 4.0。我进行了必要的包安装,并解决了构建的问题。然而,现在我的单元测试不再起作用,而是出现了以下错误:
UTA007:在MyTestClass类中定义的MyClass_DoesStuff方法没有正确的签名。标记有[TestMethod]属性的测试方法必须为非静态、公共、返回void类型且不应带任何参数,例如:public void Test.Class1.Test()。此外,如果您运行异步单元测试,则返回类型必须为Task。例如:public async Task Test.Class1.Test2()
也许测试运行程序无法识别.NET 4.0的System.Threading.Tasks.Task
?我从NuGet安装了Microsoft Async
、Microsoft BCL Build Components
和Microsoft BCL Portability Pack
。
是否有办法让我在.NET 4.0上实现异步单元测试?
编辑:
这被标记为“重复”的内容(TestMethod:async Task TestSth() does not work with .NET 4.0)是因为测试未显示在测试资源管理器中,而在我的情况下,我得到了我发布的错误。不是重复内容。