`
chelsea
  • 浏览: 117782 次
  • 来自: ...
社区版块
存档分类
最新评论

持续集成 .Net手册

    博客分类:
 
阅读更多

持续集成 .Net手册

一、概念

Martin Fowler的文章:Continuous Integration 中文翻译:持续集成

二、工具

传统工具:VisualStudio.Net,VisualSourceSafe,Rational ClearCase

自动编译工具:NAntNAntContrib

回归测试工具:NUnit

代码检查工具:FxCop

持续集成工具:CruiseControl.Net

三、步骤

  • CruiseControl.Net监控远程版本控制系统的变化

  • 变化发生时CruiseControl.Net调用编译工具进行编译(NAnt或VisualStudio.Net)

  • 编译成功后调用NUnit进行回归测试

  • 编译成功后调用FxCop进行代码检查

  • 完毕后将编译结果、测试结果、代码检查结果发送至开发人员、主管经理,并发布至网站

图示:

所有这一切都是按照编制好的脚本自动进行的

四、实施示例

目前我们使用的是ClearCase

主控软件为CruiseControl.Net,其脚本文件为ccnet.config

  • 配置远程版本控制系统

- <sourcecontrol type="clearCase">
<viewPath>D:/cc_view/USE_TECH_DEPT/Platform/Nucleus/2产品开发/2实现/Nucleus1.0/Source</viewPath>
<useLabel>false</useLabel>
</sourcecontrol>
  • 配置编译工具

- <build type="nant">
<executable>F:/software/Agile.Net/nant-0.85-nightly/bin/nant.exe</executable>
<baseDirectory>F:/software/Agile.Net/nant-0.85-nightly/bin</baseDirectory>
<buildFile>Y:/nucleus.build</buildFile>
<logger>NAnt.Core.XmlLogger</logger>
- <targetList>
<target>build</target>
<target>fxcop</target>
</targetList>
</build>
  • 配置测试用例

- <tasks>
- <nunit>
<path>D:/Program Files/NUnit 2.2/bin/nunit-console.exe</path>
- <assemblies>
<assembly>Y:/NewPDObject/TestNewPDObject/bin/Debug/TestNewPDObject.exe</assembly>
</assemblies>
</nunit>
</tasks>
  • 配置报告形式
<publishers>
- <xmllogger>
<logDir>../web/log</logDir>
- <mergeFiles>
<file>Y:/nucleus.xml</file>
</mergeFiles>
</xmllogger>
- <email from="ajaxchelsea@163.com" mailhost="163.com" includeDetails="TRUE">
<projectUrl>http://ajaxchelsea/ccnetweb</projectUrl>
- <users>
<user name="BuildGuru" group="buildmaster" address="ajaxchelsea@163.com" />
<user name="chelsea" group="developers" address="chelsea@chelseafc.com" />
<user name="ajax" group="developers" address="ajax@ajaxfc.com" />
</users>
- <groups>
<group name="developers" notification="always" />
<group name="buildmaster" notification="always" />
</groups>
</email>
</publishers>
  • 其中CruiseControl.Net没有提供代码检查工具FxCop的支持,其文档建议使用NAnt的<exec>任务来调用FxCop,直到出现<fxcop>的Task,因此,需要配置NAnt的脚本文件:
- <target name="fxcop" depends="build">
<exec program="D:/Program Files/Microsoft FxCop 1.30/fxcopcmd.exe" commandline="/p:Y:/nucleus.fxcop /o:Y:/nucleus.xml" failonerror="false" />
</target>

五、几点提示

  • CruiseControl.Net会自动根据本地ClearCase的View监控远程VOB
  • 其实除了监控远程版本控制系统外其它的任务都可以由NAnt来完成,CCNet只负责监控变化并调用NAnt即可
  • 可以直接为CCNet配置VisualStudio.Net解决方案"<build type="devenv" solutionfile="D:/dev/MyProject/MyProject.sln" configuration="debug" /> ",但这样就无法配置FxCop了,至少目前如此;
  • ccnetservice.exe.config中有一句“<add key="ccnet.config" value="C:/Downloads/TestData/ccnet.config" /> ”应该是配置ccnet.config的路径,但现在好像不管用,还得将ccnet.config放在server目录下
  • 最好避免中文路径,否则就需要手工为几个Xml格式的文件,如.csproj等加入编码方式“<?xml version="1.0" encoding="UTF-8" ?>,或者将中文路径映射为虚拟硬盘:“subst Y: "D:/cc_view/USE_TECH_DEPT/Platform/Nucleus/2产品开发/2实现/Nucleus1.0/Source"”
  • NUnit有VisualStudio.Net插件NUnitAddin,FxCop等亦可以配置为VisualStudio外部工具,推荐使用
  • 各种工具的安装、使用,在各自的文档里都非常详细,网上亦有无数资源

六、参考资料

分享到:
评论

相关推荐

    C# asp.net 完全手册(初学者必看)

    11. **Web开发最佳实践**:包括代码组织、版本控制、单元测试和持续集成等,这些都是提高开发效率和代码质量的关键。 通过阅读《C#完全手册.pdf》和参考《webasp.net.txt》,初学者可以系统地学习C#语言和ASP.NET...

    《C#.NET开发者手册》PDF

    同时,也会讲解代码版本控制的重要性,如Git的使用,以及持续集成和部署的概念。 最后,友情提示.txt可能是一个额外的文档,提醒读者在学习过程中注意的一些要点,例如保持良好的编程习惯,遵循最佳实践,以及如何...

    ASP.Net 手册Word版

    - 使用Visual Studio和第三方工具进行持续集成,编写单元测试和集成测试以确保代码质量。 13. **云部署** - 针对Azure云平台的ASP.NET应用程序部署策略和最佳实践。 通过这份"ASP.Net 手册Word版",无论是初学者...

    asp.net参考手册

    13. **持续集成与自动化测试**:TFS(Team Foundation Server)或VSTS(Visual Studio Team Services)等工具支持持续集成,NUnit、MSTest等框架可用于编写和执行单元测试,确保代码质量。 以上只是ASP.NET参考手册...

    ASP.NET类库查询手册

    ASP.NET支持TDD(Test Driven Development)和持续集成,通过Visual Studio和第三方工具如NUnit、MSTest等,可以编写和运行单元测试,确保代码质量。 总而言之,“ASP.NET类库查询手册”涵盖了ASP.NET开发的各个...

    asp.net入门学习手册

    ### ASP.NET 入门学习手册知识点总结 #### 一、ASP.NET 发展战略与发展概况 - **背景**:ASP.NET 是微软.NET框架的一部分,旨在提供一种新的方式来创建动态网页和应用程序。它作为Active Server Pages (ASP) 的下...

    ASP.NET 完全手册

    15. **单元测试与持续集成**:使用如 MSTest、NUnit 或xUnit进行单元测试,结合Jenkins、GitLab CI/CD等工具进行持续集成和持续部署。 "ASP.NET 完全手册"可能会详细讲解这些概念,并提供实际示例和实践指导。通过...

    ASP.NET实用手册

    10. **单元测试与持续集成**:介绍如何编写测试代码,使用MSTest、NUnit或xUnit,以及如何配置持续集成(CI)和持续部署(CD)。 【标签】中的"好很用"表明ASP.NET在实际项目中表现出色,易于学习和应用,且具有...

    Visual Studio.net 中文使用技巧手册

    11. **持续集成与持续交付(CI/CD)**:随着DevOps的流行,手册也会涉及如何在Visual Studio中配置CI/CD流程,以实现自动化构建和部署。 12. **云计算开发**:如果适用,手册会涵盖使用Azure服务,如Azure Functions...

    ASP.NET开发人员手册

    13. **持续集成与自动化测试**:如何利用Visual Studio Team Services或Jenkins等工具进行持续集成,以及编写单元测试和集成测试。 手册中的"说明.txt"文件可能提供了关于如何阅读和使用这份资源的指导,包括目录...

    vb.net调试技术手册

    VB.NET的调试工具集成了Visual Studio IDE,提供了多种调试手段,包括设置断点、单步执行、查看变量值、调用堆栈分析、异常处理等。 首先,了解如何设置断点是调试的基础。在VB.NET代码中,你可以通过在行号前点击...

    VS.NET使用技巧手册

    1. **Team Foundation Server (TFS)** 或 **Azure DevOps**:提供版本控制、工作项跟踪、持续集成等功能,助力团队协作。 2. **源代码同步**:通过Git或TFS,实现团队成员间的代码同步与合并。 **八、自动化与集成*...

    Visual Studio .NET使用技巧手册

    9. **单元测试和持续集成**:理解单元测试的重要性,学习使用Visual Studio内置的测试工具进行测试驱动开发。同时,了解持续集成的概念和实践,如使用MSBuild和Team Foundation Server。 10. **扩展与插件**:了解...

    ASP.NET完全手册是一部非常好的ASP.NET的入门参考资料,希望对新学ASP.NET的人有所帮助。

    10. **持续集成和持续部署(CI/CD)** - 了解Jenkins、Azure DevOps或GitHub Actions等工具,实现自动化构建、测试和部署,提升开发效率。 通过阅读《ASP.NET完全手册》,读者可以逐步掌握这些知识点,从零开始构建...

    visual studio.net 使用技巧手册

    14. **持续集成/持续部署(CI/CD)**:理解CI/CD的概念,以及如何在Visual Studio .NET中配置和实现自动化构建和部署流程。 《Visual Studio .NET 使用技巧手册》不仅提供了基础操作的指导,还深入探讨了高级特性和...

    Visual Studio.NET使用技巧手册中英文版

    5. **测试驱动开发**:如何编写单元测试,集成测试,以及使用持续集成/持续部署(CI/CD)工具进行自动化测试。 6. **ASP.NET与Web开发**:对于Web应用开发者,可能会讲解如何使用ASP.NET框架创建动态网站,包括MVC...

    visual+studio.net使用技巧手册

    14. **持续集成/持续部署(CI/CD)**:学习如何设置和配置Visual Studio的CI/CD流程,实现自动化构建和部署。 15. **代码审查**:通过Visual Studio内置的代码审查工具,可以进行代码质量检查和同行评审,提升团队...

    Microsoft .NET企业级应用架构设计

    9. **测试和调试**:单元测试、集成测试和持续集成的重要性,以及使用如NUnit、Moq等工具进行测试的方法。 10. **部署和运维**:探讨IIS(Internet Information Services)配置、发布策略、负载均衡、故障转移集群...

    Visual.Studio.NET使用技巧手册

    10. **协作与团队开发**:理解Team Foundation Server(TFS)或Azure DevOps的工作流程,包括代码审查、任务管理、持续集成和持续部署(CI/CD)。 11. **ASP.NET Web开发**:对于.NET框架下的Web应用开发,了解如何创建...

    visual studio.net使用技巧手册

    9. **协同开发工具**:掌握团队探索者(Team Explorer)的使用,进行源代码控制、工作项管理、持续集成等团队协作活动。 10. **Web开发**:了解ASP.NET的MVC模式,以及如何使用ASP.NET AJAX来提升Web应用的用户体验...

Global site tag (gtag.js) - Google Analytics