如果 NDepend 查询引发警告,如何自动使 nant 构建失败
好的,首先一些背景知识。 我正忙于自动化我们的构建过程。 我们混合运行了 Vs 2005 和 VS 2008,两者都针对平台 2.0。 我们使用 Nant 进行构建,使用 MSBUILD 任务进行编译,使用 Cruise Control .net 进行 CI。 目前,我们将所有警告视为错误,如果任何 FxCop 规则失败(我们禁用的一小部分除外),则构建失败;如果 Simian 在所有项目中检测到任何超过 5 行的代码重复,则构建失败。
我编写了 NDepend CQL 查询来强制执行一些在 FxCop 中难以实现的规则。 如果方法/类中的行数违反一定限制,我希望构建失败。 如果方法的圈复杂度太高,我也想失败。
我可以轻松地运行 NDepend 作为我的构建的一部分。 但如果我的 CQL 查询返回结果 >,我就无法让构建失败。 0
所以这就是问题:
- 有人尝试过吗 相似的?
- 有南特任务吗 支持这个吗?
- 如果有 调用 NDepend 的 Nant 任务,但是 构建不会失败,就是源代码 可用,所以我可以添加此功能?
谢谢, 斯蒂芬
OK first some background. I am busy automating our build process. We run a mixture of Vs 2005 and VS 2008 both targeting platform 2.0. We use Nant to do our builds using the MSBUILD task to do the compile and Cruise Control .net to do our CI. Currently we treat all warnings as errors, fail the build if any FxCop rules fail (except a small subset that we disabled), fail the build if Simian detects any code duplication of more than 5 lines across all projects.
I have written NDepend CQL query to enforce a few rules that are hard to implement in FxCop. I want to fail the build if the number of lines in a method/class breach a certain limit. I also want to fail if the cyclomatic complexity of a method is too high.
I can easily run NDepend as part of my build. But I can't get the build to fail if my CQL queries return results > 0
So this is the question:
- Has anybody tried something
similar? - Is there a Nant task
that supports this? - If there is
a Nant task that calls NDepend, but
doesn't fail the build is the source
available so I can add this feature?
Thanks,
Stephen
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我们所做的实际上是在解析输出文件后立即运行一个 powershell 脚本,并根据发现的条件抛出一系列错误以及相应的消息。 一旦 powershell 抛出错误,构建就会失败。
What we do is actually have a powershell script run right after that parses through the output file, and throws a series of errors with an appropriate message depending on which condition it found. As soon as powershell throws an error the build fails.
请参阅有关 NDepend 关键规则和构建失败的文档:
http://www.ndepend.com/Doc_CI_CriticalRule.aspx
See documentation about NDepend Critical Rules and Build Failure:
http://www.ndepend.com/Doc_CI_CriticalRule.aspx