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