假设我们有以下单元测试:
[Test]
public void OneAndOneTest(int one)
{
Assert.That(1 + one, Is.EqualTo(2));
}
编译器将接受此代码。但是测试本身是不正确的,因为它应该是[TestCase(1)]
而不是[test]
。当使用Nunit专门运行此测试时,会出现错误,指出参数不匹配。但是,当我在一个解决方案中运行所有测试时,我会跳过'跳过'结果而不是所述错误。
在当地这是一个烦恼。但是你应该在编写测试时测试你的测试,所以它不是一个大问题。 (应该是这里的关键字......)
然而,当詹金斯跑步说测试它应该总是失败。由于我工作的地方允许在某些情况下跳过测试,因此无法在跳过的测试中构建失败。
问题出在Nunit(我想)。我的本地系统和Jenkins都运行NUnit可执行文件并互操作可执行文件的输出。我的本地系统将其移植到Dot封面,而Jenkins将其转储到XML文件中,Nunit plugin
稍后在构建过程中进行分析。
长话短说: Nunit是否有一种方法可以在一个或多个具有不正确参数的测试的解决方案中运行所有测试时使构建失败
答案 0 :(得分:1)
问题在于NUnit版本,我尝试了与最新版本(NUnit 3.6)完全相同的东西,测试结果以及整体结果是“失败”,请参阅NUnit控制台下面的输出:
NUnit Console Runner 3.6.0 版权所有(C)2017 Charlie Poole 错误,失败和警告
1)无效:ConsoleApplication1.Program.add 方法具有非void返回值,但预期没有结果 测试运行摘要 总体结果:失败 测试数:1,通过:0,失败:1,警告:0,不确定:0,跳过:0 测试失败 - 失败:0,错误:0,无效:1