我们应该在 UnitTest 程序集上使用 FxCop 吗?

Posted

技术标签:

【中文标题】我们应该在 UnitTest 程序集上使用 FxCop 吗?【英文标题】:Should we use FxCop on UnitTest assemblies? 【发布时间】:2009-01-19 19:24:35 【问题描述】:

我们在所有项目中都使用 FxCop。对于我们的单元测试,我不确定它是否值得。我们最终得到了许多压制:

[SuppressMessage("Microsoft.Performance", "CA1822:MarkMembersAsStatic", Justification = SuppressJustifications.CA1822MethodIsUsedExternallyAsNonStatic)]
[SuppressMessage("Microsoft.Usage", "CA1806:DoNotIgnoreMethodResults", MessageId = "Cantaloupe.Seed.Security.RijndaelEncryption", Justification = SuppressJustifications.CA1806MethodIsCalledForExceptionThrowingTest)]

人们对 FxCop on Unit test code 有什么看法?

【问题讨论】:

【参考方案1】:

当我教授我们的单元测试/TDD 课程时,我通常会告诉人们编写测试代码时遵循与编写探测器生产代码时相同的原则。但是,我承认某些 FxCop 规则可能会产生过多的噪音。

您不能为测试代码使用合适的 FxCop 规则子集吗?

【讨论】:

【参考方案2】:

不值得努力; FxCop 用于生产编码标准,而不是内部测试代码

(不过,时不时地给它一个运行和一次检查并没有什么坏处,以防它告诉你一些有用的东西......)

【讨论】:

嗯?我会说“不值得努力”有点强烈。为什么要将质量上不同的“内部”代码视为“生产”代码?执行编码标准(FxCop 可以做到的)是检查代码正确性的重要部分 - 虽然肯定不是最重要或只有一个。 @[Christian.K]:这就是为什么我说时不时地这样做并没有什么坏处,以防万一,但是没有理由在单元测试代码上完全符合 FxCop,或一次性代码,或一次性实用程序代码等。使用您的最佳判断。【参考方案3】:

是的,但您不必对此很***。你的测试是你的维护编码员最好的朋友。如果您的测试不容易阅读,您的维护编码员将会遇到困难。我认为这有助于鼓励更好的习惯,单元测试代码没有允许马虎的许可。

【讨论】:

【参考方案4】:

如果您有时间,请继续。让警察查看您的所有代码并不是一个坏主意。

【讨论】:

以上是关于我们应该在 UnitTest 程序集上使用 FxCop 吗?的主要内容,如果未能解决你的问题,请参考以下文章

我可以在整个数据集上使用 StandardScaler(),还是应该分别在训练集和测试集上计算?

UnitTest 我应该使用拆卸和设置吗

Unittest 框架之断言,你学会了吗??

在“任何 CPU”.NET 程序集上强制 x86 CLR

我应该如何在包含文本的训练集上使用机器学习分类器?

python单元测试-unittest