2017-02-01 51 views
3

说,我们有以下的单元测试:使NUnit的失败上无效的测试参数

[Test] 
public void OneAndOneTest(int one) 
{ 
    Assert.That(1 + one, Is.EqualTo(2)); 
} 

编译器将接受该代码。但是测试本身是不正确的,因为它应该是[TestCase(1)]而不是[test]。当用Nunit专门运行这个测试时,它会给出一个错误,说有一个参数不匹配。但是,当我在解决方案中运行所有测试时,我会得到一个“跳过”结果,而不是所述错误。

本地这是一个烦恼。但是在写作时你应该测试过你的测试,所以它不是太大的问题。 (应该是这里的关键字...)

但是,当Jenkins运行时说要测试​​它应该总是失败。由于我工作的地方允许在某些情况下跳过测试,因此未能在跳过的测试上构建不成功。

问题与Nunit(我认为)。我的本地系统和Jenkins都运行NUnit可执行文件并贯穿可执行文件的输出。我的本地系统将它移植到Dot覆盖中,而Jenkins将它转储到稍后在构建过程中分析的XML文件中。

长话短说:是存在的,与NUnit的,这是一种失败运行在具有参数不正确的量

+0

您使用的是什么版本的NUnit?我用NUnit 3.6试过同样的事情,测试和总体结果都是“失败”......这可能是NUnit的旧版本的问题吗? –

+1

测试无效,应该给出错误而不是失败。总体结果应该是失败的。除非在NUnit的早期版本中认为无效测试被跳过,否则不应该跳过它。要给出真正的答案,需要知道所涉及的框架和跑步者的版本。 – Charlie

+0

版本上的好点。在检查时,我注意到我们正在运行一个令人惊讶的旧版本(2.6.4)。我会在今天晚些时候更新它,看看是否有帮助。 –

回答

1

问题是与NUnit的版本,一个或多个测试解决方案的所有测试时的构建,我试过用最新版本(3.6 NUnit的)和测试结果以及总的结果完全一样的事情为“失败”,看到NUnit的控制台输出如下:

NUnit的控制台亚军3.6.0 版权所有(C)2017查理普尔 错误,故障和警告

1)无效:ConsoleApplication1.Program.add 方法具有非空返回值,但没有结果预计
试运行总结 总体结果:失败
测试计数:1,通过:0,失败: 1,警告:0,不确定:0,跳过:0 失败测试 - 失败:0,错误:0,无效:1