##目录

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. CSS中有关水平居中和垂直居中的解决办法

    CCS中让div等块级元素在父级元素中居中的方法: (1)div{  margin:0 auto   } 该方法只能实现水平的居中,无法实现元素的垂直居中 (2)当div元素的宽高是固定的,然后设置位 ...

  2. bash shell + python简单教程,让你的mac/linux终端灰起来~

    前提条件:已经安装python,命令行支持bash 在bash_profile中添加 function ccolor { python /Users/xirtam/Documents/tools/cc ...

  3. charles抓包工具分享

    今天,给大组内QA做了一次分享,主要面向移动端测试,介绍了我平时在测试工作中用到的功能,大家都积极响应,现场搭环境,现场操作,现场提问解答,最后大家都成功的利用起来了,感觉很有成就感.下面介绍我今天分 ...

  4. 级联两个bootstrap-table。一张表显示相关的数据,通过点击这张表的某一行,传过去对应的ID,刷新另外一张表。

    二张表的代码(我用的插件,大家可以去网上直接下载http://issues.wenzhixin.net.cn/bootstrap-table/): <div class="contai ...

  5. C++学习笔记 知识集锦(二)

    1. 命名规范 2. 代码格式 3. QString的判断 4. 对象的判空 5. 隐式接口&显式接口 6. vector&string 7. static 8. const 9. v ...

  6. Issue 3:数据处理基本认识

    介绍 传统数据库对数据处理一般都分成两类:OLTP和OLAP. 数据分析(OLAP)的前提条件是要准备数据. 然后才是具体的数据分析,对此,可以分为统计型的数据分析和挖掘性的数据分析. 最后对分析结果 ...

  7. Leetcode: Convex Polygon

    Given a list of points that form a polygon when joined sequentially, find if this polygon is convex ...

  8. c#:如何处理对对象进行深度拷贝

    /// <summary> /// 对对象进行深度拷贝 /// </summary> /// <param name="obj"></pa ...

  9. R 操作矩阵和计算SVD的基本操作记录

    在R中可以用函数matrix()来创建一个矩阵,应用该函数时需要输入必要的参数值. > args(matrix) function (data = NA, nrow = 1, ncol = 1, ...

  10. [Android] 转-LayoutInflater丢失View的LayoutParams

    原文地址:http://lmbj.net/blog/layoutinflater-and-layoutparams/ View view = inflater.inflate(R.layout.ite ...