fer*_*ega 8 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);
}
}
}
Run Code Online (Sandbox Code Playgroud)
但是大多数执行时间(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扩展,结果相同.
不知道是什么问题?
我能够重现这种行为。这似乎是 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);
}
Run Code Online (Sandbox Code Playgroud)
github 上有一个已知问题。
| 归档时间: |
|
| 查看次数: |
2776 次 |
| 最近记录: |