【问题标题】:NUnit 2.6.3 - Tests not executing with message Test adapter sent back a result for an unknown test caseNUnit 2.6.3 - 测试未使用消息执行测试适配器发回未知测试用例的结果
【发布时间】:2014-02-01 22:10:00
【问题描述】:

我正在使用 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 上执行。

这是输出消息窗口:

------ 发现测试开始 ------ NUnit 1.0.0.0 发现测试已启动 NUnit 1.0.0.0 发现测试完成 ========== 发现测试已完成:找到 6 个 (0:00:00,9970583) ========== ------ 运行测试开始 ------ NUnit 1.0.0.0 开始执行测试 运行开始:C:\TestProjects\NUnit26Tests\NUnit26Tests\bin\Debug\NUnit26Tests.dll NUnit 1.0.0.0 执行测试已完成 测试适配器发回未知测试用例的结果。忽略“RandomTest(92)”的结果。 测试适配器发回未知测试用例的结果。忽略“RandomTest(38)”的结果。 测试适配器发回未知测试用例的结果。忽略“RandomTest(69)”的结果。 测试适配器发回未知测试用例的结果。忽略“RandomTest(96)”的结果。 ========== 运行测试完成:2 次运行 (0:00:09,271531) ==========

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

我已经使用 runner Nuget Package 进行了测试,并安装了 NUnit Runner 扩展,结果相同。

知道是什么问题吗?

【问题讨论】:

  • 您是否尝试使用 NUnit .exe 运行器(控制台或 GUI)手动运行它?你得到同样的结果吗?
  • @DioF 好抓到!它在 NUnit GUI 上运行良好,因此问题似乎与我测试过的 Visual Studio 运行程序或运行程序 Nuget 包有关。

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


【解决方案1】:

我能够重现这种行为。这似乎是 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

【讨论】:

  • 作为@DioF 的测试,这似乎是与跑步者有关的问题。您生成随机的答案是一种解决方法,但是因为我正在尝试测试 NUnity 功能本身(示例中的属性 Random),所以它对我无效,但我将标记为已解决,以供将来的访问者解决。
  • 值得注意的是,对于任何展望未来的人来说,当您在测试用例中使用 DateTime.Now 时会发生类似的事情;随着该值的变化
猜你喜欢
  • 1970-01-01
  • 2016-10-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-08-30
  • 1970-01-01
  • 2015-06-15
相关资源
最近更新 更多