簡體   English   中英

異步測試在Nunit 2.6.2中掛起

[英]Async test hangs in Nunit 2.6.2

我下面有這個簡單的測試方法。

[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支持異步

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

使它起作用

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM