不能超载异步/等待与NUnit测试适配器方法 [英] Can't overload async/await methods with NUnit Test Adapter

查看:168
本文介绍了不能超载异步/等待与NUnit测试适配器方法的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我得到一个 System.Reflection.AmbiguousMatchException 至少一个的方法是异步当NUnit的测试使用的是 NUnit测试适配器2.0.0.0 在Visual运行的方法名称相匹配工作室。我能够没有任何问题运行测试时,我用ReSharper的单元测试转轮,当我使用的 NUnit的GUI测试运行 NUnit的-2.6.4.msi 的)。这是NUnit测试适配器中的错误?

I'm getting a System.Reflection.AmbiguousMatchException when at least one of the methods are async and the method names match when the NUnit tests are run using the 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). Is this a bug in the NUnit Test Adapter?

[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的问题列表

推荐答案

这是由的库业主的。根据他们的意见看起来这将在未来的版本中得到解决:

This was confirmed as a bug by one of the library owners. According to their comment it looks like this will be addressed in a future release:

由于它只发生在适配器,它应该是我们能够解决!

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

这当然是个好消息。在此同时,你可以解决此问题通过不超载异步/ await方法在单元测试。

This is great news of course. In the mean time you can work around this issue by not overloading async/await methods in your unit tests.

这篇关于不能超载异步/等待与NUnit测试适配器方法的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆