【发布时间】:2010-11-10 17:37:24
【问题描述】:
我正在开始一个新的 .Net 项目,我想知道您对使用工具的建议。
总的来说,我希望有以下几点:
- 应该有人能够检查项目并在安装单声道或 .Net 的情况下构建它
- 它应该构建在尽可能多的平台上(或者至少是 Windows 和 Linux)
- 应该有人能够自动构建它(例如使用 nant)或从他们的 IDE 构建它
- 自动构建应至少运行以下内容:
- 代码应该全部编译(显然)
- 应该运行所有单元测试并报告任何故障
- 以下内容也不错,但可选:
- 提供测试覆盖率数据(如果可能,提供易于阅读的报告)
- 构建 API 文档
- 提供代码指标分析(同样,如果可能,提供报告)
- 检查常见的编码错误和风格问题(类似于 FxCop 或 checkstyle 所做的事情。同样,如果可能,请提供报告)
在过去的项目中,我总是倾向于使用以下内容:
- 自动构建:nant
- 单元测试:nunit
- 测试模拟:Moq(这是一个很棒的库)
- API 文档:Sandcastle(不知道这是否适用于除 Windows 之外的任何设备)
- 指标:sourcemonitor(我认为这不适用于 Windows 以外的任何设备)
- 测试覆盖率:ncover(这是非常古老的开源版本。它可以在 Windows 以外的任何平台上运行吗?)
- 代码检查:fxcop(这在 Windows 以外的任何地方都有效吗?)
我面临的问题是:
- 我必须将所有这些软件与代码捆绑在一起,仅工具就给了我近 100MB 的空间。要么就是这样,要么要求用户在构建项目之前安装和配置所有这些,这是不可取的。你如何解决这个问题?
- 许多工具很难与 nant 集成,例如 ncover 和源监视器
- 许多工具在未经修改的情况下无法在 64 位版本的 Windows 上运行(我在看着你,nCover)
- 某些工具只能在 Windows 上运行
- 有些工具非常陈旧
- 我无法从许多工具中获得非常漂亮的报告(如果有的话),当然也无法让它们看起来彼此一致
- 我必须手动更改一些 Visual Studio 生成的项目文件以添加特殊配置(否则自动化和集成构建会相互影响)
不幸的是,Java 在选择免费工具方面绝对胜过 .Net。有大量适用于 Java 的测试覆盖工具、代码分析工具、报告工具、API 文档工具、测试工具、构建工具等,但我很难找到任何适用于 .Net 的工具。
那么,这些工具中是否有更好且仍然免费的替代品可以在所有支持单声道的平台上运行?
你有什么建议?
【问题讨论】:
-
要求挺高的 ;) 看看有没有人回答
标签: c# .net build build-automation