gpt4 book ai didi

.net - .NET 4.0 异步单元测试

转载 作者:行者123 更新时间:2023-12-04 15:10:27 24 4
gpt4 key购买 nike

我有一套相当标准的单元测试。

[TestClass]
public class MyTestClass
{
[TestMethod]
public async Task MyClass_DoesStuff()
{
//...
await foo;
}
}

这一切正常,但后来我需要降级到 .NET 4.0。我进行了必要的软件包安装并完成了所有构建。但是,现在我的单元测试不再起作用。相反,我收到以下错误:

UTA007: Method MyClass_DoesStuff defined in class MyTestClass does not have correct signature. Test method marked with the [TestMethod] attribute must be non-static, public, return-type as void and should not take any parameter. Example: public void Test.Class1.Test(). Additionally, return-type must be Task if you are running async unit tests. Example: public async Task Test.Class1.Test2()



也许测试运行器不识别 System.Threading.Tasks.Task对于.NET 4.0?我安装了 Microsoft Async , Microsoft BCL Build Components , 和 Microsoft BCL Portability Pack来自 NuGet。

有没有办法让异步单元测试适用于 .NET 4.0?

编辑 :

标记为 ( TestMethod: async Task TestSth() does not work with .NET 4.0 ) 的“重复”用于测试未显示在测试资源管理器中,而在我的情况下,我在发布时遇到了错误。不是重复的。

最佳答案

asyncawait是在 .NET 4.5 中引入的,因此您将无法在 .NET 4.0 中使用该语法。然而,我记得,Task s 是在 .NET 4.0 中引入的,因此您可能可以使用 Task 完成您的任务。直接地。

[TestMethod]
public Task MyClass_DoesStuff()
{
Task<Foo> foo = GetSomethingAsync();
var result = foo.Result;
}

关于.net - .NET 4.0 异步单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29106210/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com