Unit testing 在单元测试中运行所有stylecop规则

Unit testing 在单元测试中运行所有stylecop规则,unit-testing,rules,stylecop,Unit Testing,Rules,Stylecop,是否仍然可以运行单元测试中的所有StyleCop规则(相当于重新扫描全部)并基于警告进行断言 提前谢谢 /Jasper我只会将其包含在构建过程中,如果出现警告(通过nant或ant返回码或类似的方式),则将构建视为失败。您可以将这些工具配置为仅发出所需的警告 为什么在单元测试中需要它呢?从技术上讲,您可以这样做,但这是非常(!)不寻常的使用StyleCop的方式 首先,您应该学习如何从代码中运行StyleCop。本讨论包含一些有助于实现此功能的示例: 然后,您将能够创建单元测试,该测试将枚举并检

是否仍然可以运行单元测试中的所有StyleCop规则(相当于重新扫描全部)并基于警告进行断言

提前谢谢


/Jasper

我只会将其包含在构建过程中,如果出现警告(通过nant或ant返回码或类似的方式),则将构建视为失败。您可以将这些工具配置为仅发出所需的警告

为什么在单元测试中需要它呢?

从技术上讲,您可以这样做,但这是非常(!)不寻常的使用StyleCop的方式

首先,您应该学习如何从代码中运行StyleCop。本讨论包含一些有助于实现此功能的示例:

然后,您将能够创建单元测试,该测试将枚举并检查指定位置中的所有源文件。这里不好的部分是您需要以某种方式指定这个位置,单元测试将使用源代码而不是编译的程序集(这是非常不典型的)


但无论如何,我建议重新考虑你的方法。实际上不需要将StudioCo错误视为编译错误。您可以在构建服务器上执行分析,并以您喜欢的任何方式共享结果(单元测试也是如此)——一切都在您的手中

在编译时和单元测试中将每个静态代码分析规则视为错误之间有很大的区别。在任务开始时,如果每个和小的stylecop规则都会生成一个错误(例如,双空格、缺少注释等),这将是非常具有侵略性的。我们有一个签入舞蹈,其中包括stylecop步骤,但许多人忽略了这一步(这是一个手动步骤-我理解为什么!)。如果我们将静态代码分析包括在单元测试中,那么它将在签入之前被强制运行的单元测试捕获,或者被我们的CI.Imho捕获,这将导致单元测试膨胀。花一天时间调整规则,然后将其集成到构建周期中。如果不希望警告产生错误,也可以将其标记为不相关。我同意StyleCop错误不应被视为编译错误。然而,我希望看到它以某种方式与我们的CI合并,并向开发人员提供某种反馈。开发人员,包括我自己,几乎永远不会手动查看附加的工件。代码覆盖率、性能测试等也是如此。我们需要反馈。将stylecop分析纳入单元测试,将提供开箱即用的反馈。然而,我承认这可能不是正确的方法。到目前为止,结论是将StyleCop警告集成到TeamCity的工件中。可能会开发一个电子邮件通知或类似的。