##目录

1. 安装Jenkins
1. 配置Jenkins
1. 自动编译
1. 自动部署
1. 自动测试

环境介绍:
web服务器机器:192.168.1.7
svn服务器:192.168.1.5
jenkins服务器:192.168.1.6(此服务器上面安装Jenkins)
三台机器均为WIN7 操作系统。

##1. 安装Jenkins
安装比较简单就不详细介绍了,记住需要先安装JDK1.7因为Jenkins依赖jdk。提供官网地址,选择自己的想要安装的系统环境进行下载。
[官网下载](http://jenkins-ci.org/)

##2. 配置Jenkins
>安装完成在创建项目之前,需要先对Jenkins做一些环境配置和插件的安装。
** 下面列来需要用的插件:**
- SVN插件 用来pull系统.net源码(默认已经安装)
- MSBuild plugin 插件 用来实现对源码进行编译
- Post bulid task插件  用来判断是否编译中出错,而停止后面的构建
- Publish Over FTP插件 实现远程FTP远程部署
- FxCop Runner Plugin  用来做.NET静态代码检查的工具(如需要的话,可以在编译完成后添加。本文略。)

###插件安装和配置
####安装
进入 【Jenkin】-【系统管理】-【插件管理】-【可选插件】进行搜索要做安装的插件名称,然后点击页面中的【直接安装】按钮进行安装。
安装时会进入到插件安装界面,可以看到是否安装完成,安装完成后重启Jenkins服务。
(所有插件可以一起安装,也可以分开安装,最后重启,具体操作自行脑补)

####环境配置
通过 【Jenkin】-【系统管理】-【系统设置】配置下面插件环境
**添加MSBuild环境**
如下图,配置MSBuild.exe路径(我编译使用v.4.0版本,黄色警告不用管)
**添加FTP环境**
IIS发布web目录,同时发布为ftp目录,编译完后的文件通过FTP进行上传。


###创建项目
填写项目名称,选择自由风格,点击“ok”完成创建

##3. 编译和部署

**1. SVN 配置**
进入创建的项目,点击配置按钮,进行配置项目的构建。
首先源码管理选择 Subversion (即SVN)

**2. 配置构建触发器**
Poll SCM:定时检查源码变更(根据SCM软件的版本号),如果有更新就checkout最新code下来,然后执行构建动作。
H/5 * * * *  (每5分钟检查一次源码变化)
 
Build periodically:周期进行项目构建(它不care源码是否发生变化)
0 2 * * *  (每天2:00 必须build一次源码)
我的配置如下:


**3. MSBulid 配置 **
选择之前配好的MSBuild Version,填写项目中的编译文件名称,以及编译命令

MSBuilder Version 为之前配置的 "Version 4.0"

MSBuild Build File 是项目文件或者工程文件的名称

然后就是MSBuild的命令行参数了。

/t:Rebuild 表示每次都重建,不使用增量编译

/toolsvervsion:4.0 表示使用4.0版本编译工具

/property:Configuration=Release 表示编译Release版本,

/property:TargetFrameworkVersion=v4.5表示编译的目标是.NET 4.5

**4. Post build task配置**

编译完成后,可以添加post build task判断编译是否报错,如果没有报错则执行输出命令 提示编译成功(或者调用其它命令脚本)。

编译日志结果

如果成功,则显示 0 个错误,在编译成功后可以启动单元测试

通过post build task进行判断后,进行部署,如果失败则不会进行部署。

**5. Publish Over FTP配置 **

编译成功后使用FTP把编译后的目录文件上传到服务器。

(这里说一下,部署方式有很多种,对于.net系统来说,就是拷贝编译后的文件到服务器,不用重启服务器也可以,所以我这里就用最简单的方法上传)

name 选择之前配置的 FTP Server

Verbose output in console 选项是指上传文件的过程是否在控制台显示,不一般不需要勾选。

Retry 连接失败重试次数

Delay 连接失败后的重试间隔

Transfers

Transfer Set Source files  设置要上传的文件路径 ** 表示上传路径下的文件夹及子文件夹(相对路径是项目的workspace)

Remove prefix 去掉前缀,指在上面的时候去掉路径的前缀。比如我们上传一个路径是 \pub\website\** 的路径,实际我们指希望上传website中的文件,并不要\pub\website 这样的目录,就可以去掉路径前缀。

更多高级详细的配置方式可以查看官网说明:https://wiki.jenkins-ci.org/display/JENKINS/Publish+Over+FTP+Plugin

这样配置完成后,编译部署构建就完成了。接下来再创建一个自动化测试构建,部署完成后,自动触发自动化测试构建。

##4. 自动测试

新建项目过程和上面系统创建构建方式一样,svn地址配置成自己的测试脚本即可。

关键步骤在,【构建触发器】

这里选择 Build after other projects are built.

Projects to watch 填写要测试的项目构建,这样如果 ERP系统 项目编译部署完成后,就会触发自动化测试的构建。


95、Jenkins部署.net持续集成自动化测试环境的更多相关文章

  1. Jenkins+Gitlab搭建持续集成(CI)环境

    利用Jenkins+Gitlab搭建持续集成(CI)环境 Permalink: 2013-09-08 22:04:00 by hyhx2008in intern tags: jenkins gitla ...

  2. 【K8S】基于Docker+K8S+GitLab/SVN+Jenkins+Harbor搭建持续集成交付环境(环境搭建篇)

    写在前面 最近在 K8S 1.18.2 版本的集群上搭建DevOps环境,期间遇到了各种坑.目前,搭建环境的过程中出现的各种坑均已被填平,特此记录,并分享给大家! 服务器规划 IP 主机名 节点 操作 ...

  3. GitLab、Jenkins结合构建持续集成(CI)环境

    1 持续集成 概述及运行流程 1.1 持续集成概述 持续集成概述:持续集成(Continuous integration)持续集成是指开发者在代码的开发过程中,可以频繁的将代码部署集成到主干,并迚程自 ...

  4. Robotium接入到Jenkins持续集成自动化测试

    6.3 将测试用例接入到Jenkins 由于我是自己学习的手机自动化测试,没有实际投入到工作中使用,jenkins的接入也没有具体操作,现摘抄一下网页:http://www.tuicool.com/a ...

  5. CentOS 7 部署Gitlab+Jenkins持续集成(CI)环境

    持续集成概述及运行流程 : 持续集成概述 :持续集成(Continuous integration)持续集成是指开发者在代码的开发过程中 ,可以频繁的将代码部署集成到主干,并进行自动化测试  开发→代 ...

  6. Asp.net Core 使用Jenkins + Dockor 实现持续集成、自动化部署(三):搭建jenkins集群环境

    写在前面 大家可以看到本文的配图,左边是jenkins单机环境,右边是jenkins集群.个中区别,不言而喻,形象生动. 前面我分别介绍了.net core 程序的多种部署方式(无绝对孰优孰劣): 1 ...

  7. jenkins + Git 搭建持续集成环境

    持续集成通过自动化构建.自动化测试以及自动化部署加上较高的集成频率保证了开发系统中的问题能迅速被发现和修复,降低了集成失败的风险,使得系统在开发中始终保持在一个稳定健康的集成状态.jenkins是目前 ...

  8. 基于 Jenkins 快速搭建持续集成环境--转

    源地址:http://www.ibm.com/developerworks/cn/java/j-lo-jenkins/ 持续集成是一种软件开发实践,对于提高软件开发效率并保障软件开发质量提供了理论基础 ...

  9. Jenkins 快速搭建持续集成环境

    持续集成概述 什么是持续集成 随着软件开发复杂度的不断提高,团队开发成员间如何更好地协同工作以确保软件开发的质量已经慢慢成为开发过程中不可回避的问题.尤其是近些年来,敏捷(Agile) 在软件工程领域 ...

随机推荐

  1. 关于ios 3D变换 CGAffineTransformIdentity

    每次做完3D变换以后,重新设置view的frame时,记得用CGAffineTransformIdentity 对3D变换进行还原,否则将会影响frame.当你对view进行3D变换后,重新设置vie ...

  2. C#_基本类型

    1.C#中的值类型包括:简单类型.枚举类型和结构类型. 2.C#中的引用类型包括:类(class).接口(interface).数组.委托(delegate).object和string. 3.调试时 ...

  3. Python开发程序:学员管理系统(mysql)

    主题:学员管理系统 需求: 用户角色,讲师\学员, 用户登陆后根据角色不同,能做的事情不同,分别如下 讲师视图: 管理班级,可创建班级,根据学员qq号把学员加入班级 可创建指定班级的上课纪录,注意一节 ...

  4. pip install 安装python-requests

    pip install -i https://pypi.tuna.tsinghua.edu.cn/simple python-requests

  5. echarts基础 handleIcon 设置

    1.自己引入echarts库 2.找到代码中dataZoom中的handleIcon ,看见对应的是"M0,0 v9.7h5 v-9.7h-5 Z",这是由svg画出来的图形,其中 ...

  6. bindOrg函数

    @param params {userId 用户ID, orgcode 机构代码, defaultOrgcode 默认机构代码, defaultOcid 默认银行代码, flag 1=取所有中心(默认 ...

  7. MWeb 1.3.7 发布!增加发布到 Wordpress 等支持 MetaWeblog API 的服务,如:Wordpress 博客、新浪博客、cnblogs、oschina。

    MWeb 1.3.7 版的新功能 增加发布到 Wordpress 等支持 Metaweblog API 的服务,目前经测试过的有: Wordpress 博客.新浪博客.cnblogs.oschina. ...

  8. LDAP的Schema

    Schema是LDAP的一个重要组成部分,类似于数据库的模式定义,LDAP的Schema定义了LDAP目录所应遵循的结构和规则,比如一个 objectclass会有哪些属性,这些属性又是什么结构等等, ...

  9. android switch语句报错:case expressions must be constant expressions

    今天无意中碰见了   case expressions must be constant expressions 的问题 写了一个 switch(item.getItemId()) { case R. ...

  10. win10 pro 1511 激活成功

    slmgr /ipk W269N-WFGWX-YVC9B-4J6C9-T83GX slmgr /skms franklv.ddns.net slmgr /ato