gpt4 book ai didi

c# - 我们如何确保所有 NUnit [Test] 方法都是公开的?

转载 作者:太空狗 更新时间:2023-10-30 01:28:41 25 4
gpt4 key购买 nike

我们今天有一个错过/跳过测试用例的案例:

开发人员没有将 [Test] 公开,因此 NUnit (v 3.9.0) 没有运行它。

[TestFixture]
public class StackTests
{
[Test]
public void Fail1()
{
Assert.Fail("Will be run");
}

[Test]
void Fail2()
{
Assert.Fail("will NOT be run - none the wiser");
}
}

当开发人员注意到 Fail2 没有运行时,他又花了 20 分钟试图找出它没有被发现的原因,结果 🤦(U+1F926) 当我们注意到丢失的 public 时。

根据我的经验,NUnit [Test] 方法上缺少 public 是一个重复的绊脚石,很容易被遗漏。

有没有办法让 NUnit 或编译器对非公共(public) [Test] 方法发出警告?

还是我们被偶尔的 🤦🤦🤦 困住了?

最佳答案

有一个 analyzers package对于 NUnit。它doesn't look like有一个适合你的案例的分析器,但是有 an open issue .

您可以贡献一个分析器——看起来讨论停留在测试夹具应该有哪些构造函数上,我怀疑他们会接受一个分析器,它只是检查测试方法是否公开,这应该很容易编写.


另一种选择是采用始终指定访问修饰符的编码标准——因此 void Fail2() 将被禁止,但是 public void Fail2()private void Fail2() 将被接受。您可以使用 .editorconfig 规则执行此操作 dotnet_style_require_accessibility_modifiers = always .

关于c# - 我们如何确保所有 NUnit [Test] 方法都是公开的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58447186/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com