无法使用 NUnit 测试适配器重载 async/await 方法

Can't overload async/await methods with NUnit Test Adapter

至少一个 方法是异步的 方法名称匹配时,我得到 System.Reflection.AmbiguousMatchException NUnit 测试是 运行 使用 NUnit Test Adapter 2.0.0.0 in Visual Studio. I'm able to run the tests without problem when I use the ReSharper unit test runner and when I use the NUnit GUI test runner (NUnit-2.6.4.msi)。这是 NUnit 测试适配器中的错误吗?

[TestFixture]
public class SimpleRepro
{
    [Test]
    [TestCase("I'm valid")]
    [TestCase("So am I!")]
    public async Task Foo(string resource)
    {
        Assert.IsNotNull(resource);

        await Task.Delay(new TimeSpan(0, 0, 1));
    }

    [Test]
    public async Task Foo()
    {
        Assert.IsNotNull(Guid.NewGuid().ToString("N"));

        await Task.Delay(new TimeSpan(0, 0, 1));
    }
}

我已经在 GitHub issues list 上交叉发布了这个。

其中一位 library owners 确认这是一个错误。根据他们的评论,这看起来会在未来的版本中得到解决:

Since it only occurs in the adapter, it should be something we can fix!

这当然是个好消息。同时,您可以通过不在单元测试中重载 async/await 方法来解决此问题。