异步测试在 Nunit 2.6.2 中挂起

本文关键字:挂起 Nunit 测试 异步 | 更新日期: 2023-09-27 18:33:51

我在下面有一个简单的测试方法。

[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);
        }
    }

我使用以下命令在 Nunit 2.6.2 中运行测试。

nunit-console.exe EightBall.dll/framework:net-4.5

然而,测试似乎并没有回来,而是永远悬而未决。有没有一种特殊的方法来运行 Nunit 2.6.2 的异步测试。我认为使用 Nunit 2.6.2 支持异步

异步测试在 Nunit 2.6.2 中挂起

return new Task<bool>(() => true);创建一个任务,但不启动它。更好地使用return Task.Run(()=> true);return Task.FromResult<bool>(true)

您还可以将代码更改为

public Task<bool> WillIWin()
{
    var task = new Task<bool>(() => true);
    task.Start();
    return task;
}

使其工作