C# Nunit 2.6.2中的异步测试挂起
我有下面这个简单的测试方法C# Nunit 2.6.2中的异步测试挂起,c#,.net,c#-4.0,nunit,nunit-console,C#,.net,C# 4.0,Nunit,Nunit Console,我有下面这个简单的测试方法 [Test] public async Task OneSimpleTest1() { var eightBall = new EightBall(); var answer = await eightBall.WillIWin(); Assert.That(answer, Is.True); } 测试类如下所示 public class Eig
[Test]
public async Task OneSimpleTest1()
{
var eightBall = new EightBall();
var answer = await eightBall.WillIWin();
Assert.That(answer, Is.True);
}
测试类如下所示
public class EightBall
{
public Task<bool> WillIWin()
{
return new Task<bool>(() => true);
}
}
public类八球
{
公共任务WillIWin()
{
返回新任务(()=>true);
}
}
我使用下面的命令运行Nunit 2.6.2中的测试
nunit-console.exe EightBall.dll/framework:net-4.5
然而,这项测试似乎没有回来,而且永远挂起。使用Nunit 2.6.2是否有一种特殊的方式来运行异步测试。我认为使用Nunit 2.6.2支持异步返回新任务(()=>true)代码>创建任务但不启动它。更好地使用returntask.Run(()=>true)代码>或返回任务。FromResult(true)
您还可以将代码更改为
public Task<bool> WillIWin()
{
var task = new Task<bool>(() => true);
task.Start();
return task;
}
公共任务WillIWin()
{
var task=新任务(()=>true);
task.Start();
返回任务;
}
要使其工作请尝试
Task。运行
而不是任务构造函数,或者包装一个值,Task.FromResult
。