NUnit 2.6.3 - 未使用消息执行的测试测试适配器发回了未知测试用例的结果

时间:2014-01-13 23:42:50

标签: c# nunit visual-studio-2013 nunit-2.6

我正在玩NUnit 2.6.3,我做了这个测试:

using NUnit.Framework;
using System;

namespace NUnit26Tests
{
    [TestFixture]
    public class RandomTests
    {
        [Test]
        public void RandomTest([Random(1, 100, 5)] int value)
        {
            Assert.IsTrue(true);
        }

        [Test]
        public void SuccessTests()
        {
            Assert.That(true, Is.True);
        }
    }
}

但大多数执行时间(99%)RandomTest 在Test Runner上执行。

这是输出消息窗口:

------ Discover test started ------
NUnit 1.0.0.0 discovering tests is started
NUnit 1.0.0.0 discovering test is finished
========== Discover test finished: 6 found (0:00:00,9970583) ==========
------ Run test started ------
NUnit 1.0.0.0 executing tests is started
Run started: C:\TestProjects\NUnit26Tests\NUnit26Tests\bin\Debug\NUnit26Tests.dll
NUnit 1.0.0.0 executing tests is finished
Test adapter sent back a result for an unknown test case. Ignoring result for 'RandomTest(92)'.
Test adapter sent back a result for an unknown test case. Ignoring result for 'RandomTest(38)'.
Test adapter sent back a result for an unknown test case. Ignoring result for 'RandomTest(69)'.
Test adapter sent back a result for an unknown test case. Ignoring result for 'RandomTest(96)'.
========== Run test finished: 2 run (0:00:09,271531) ==========

在这种情况下,只执行了五个RandomTest中的一个。

我已经使用跑步者Nuget Package测试并安装了NUnit Runner扩展,结果相同。

知道这是什么问题吗?

1 个答案:

答案 0 :(得分:4)

我能够重现这种行为。这似乎是NUnit框架和/或测试适配器中的一个错误。

我的猜测是,在运行测试之前(显示它们)和运行一次之后绘制一次随机值。绘制的随机值可能不匹配,因此可能无法分配测试结果,从而导致提到的错误消息。

您可以在项目的开发站点(https://launchpad.net/nunitv2)打开此问题的错误,但他们正忙于即将发布的v3版本。

作为您的问题的解决方法,我建议您使用静态(随机)值(不使用RandomAttribute)或在测试中绘制随机值(不作为参数):

[Test]
[TestCase(15)]
[TestCase(38)]
[TestCase(2)]
[TestCase(72)]
[TestCase(69)]
public void RandomTest(int value)
{
    Assert.IsTrue(true);
}

更新

在github上有一个known issue

相关问题