带有Result属性的Nunit TestCase属性是否有效?

时间:2012-02-11 15:10:08

标签: nunit resharper resharper-6.0

所以,我接着写下了" test"测试:-) for Nunit 2.6(使用2.6.0.12035版本)

    [TestCase(1, 2, Result = 3)]
    [TestCase(3, 4, Result = 7)]
    [TestCase(5, 6, Result = 11)]
    public int Add_Test(int a, int b)
    {
        return a - b;
    }

接下来,我使用Resharper 6.1.37.86运行它。 Resharper显示所有三个测试都通过了。 比我尝试使用nunit GUI运行测试 - nunit.exe。测试会出现奇怪的错误消息:"方法具有非空返回值"。 实际上,所有测试都应该以意外的结果值失败。 这个功能是不正确的还是我做的。错误? 顺便说一句,接下来我尝试不设置Result属性,它对两个跑步者都很完美:

    [TestCase(1, 2, 3)]
    [TestCase(3, 4, 7)]
    [TestCase(5, 6, 11)]
    public void Add_Test1(int a, int b, int result)
    {
        Assert.AreEqual(result, a - b);
    }

1 个答案:

答案 0 :(得分:1)

无论是使用NUnit.exe还是NUnit-console.exe,我都会遇到与NUnit 2.6.0.12035相同的问题。

您的示例使用NUnit.exe 2.5.10正常工作。 (我的猜测是Resharper正在使用NUnit 2.5.10,所以测试通过了。)

I reported the issue加入NUnit讨论组。

编辑:我的测试程序集引用了 NUnit.framework.dll 的2.5.10版本。如果我切换到使用2.6.0.12035版本,则测试将按预期使用 NUnit.exe NUnit-console.exe 。我敢打赌你的问题是一样的。

编辑2:它已作为错误提交并fixed in the next release。如果您的单元测试库链接到旧版本的 Nunit.framework.dll ,2.6中的测试运行器将不再导致错误。