##目录

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. python thrift 服务端与客户端使用

    一.简介 thrift是一个软件框架,用来进行可扩展且跨语言的服务的开发.它结合了功能强大的软件堆栈和代码生成引擎,以构建在 C++, Java, Python, PHP, Ruby, Erlang, ...

  2. 两个NOI题目的启迪8皇后和算24

    论出于什么原因和目的,学习C++已经有一个星期左右,从开始就在做NOI的题目,到现在也没有正式的看<Primer C++>,不过还是受益良多,毕竟C++是一种”低级的高级语言“,而且NOI ...

  3. EditText添加了ImageSpan后,在两者中间不能输入纯文本

    严格来说是连续插入两个ImageSpan之后,在其中间不能够输入纯文本内容. 最后发现问题出现在了SpannableString在设置ImageSpan的时候第四个参数flag的问题. spannab ...

  4. javascript类型与类型检测

    1.javascript类型: 注:包装对象:如"hello".length实际为js为我们隐式创建了一个String临时对象,去调用该对象的length属性,调用过后再将该临时对 ...

  5. java web filter 学习(2)

    本文主要对filter的基本使用进行了讲解,其中涉及到了 filter是什么 一个filter处理一个jsp 多个filter处理一个jsp filter是什么 Filter 是java下的一种过滤器 ...

  6. iOS10配置说明

    1:如果你的App想要访问用户的相机.相册.麦克风.通讯录等等权限,都需要进行相关的配置,不然会直接crash掉. 要想解决这个问题,只需要在info.plist添加NSContactsUsageDe ...

  7. 使用 apache2 + `mod_proxy_uwsgi` + uwsgi + upstart 部署

    使用 apache2 + mod_proxy_uwsgi + uwsgi + upstart 部署 网上运行 python wsgi 的应用时,大部分的资料都是使用 nginx .uwsgi ,很少资 ...

  8. 如何发布一个Mac应用并使其成为全球付费榜第一

    Readdle公司如何发布第一个 Mac App,并使之成为Mac App Store 全球付费排名第一的 Easy注:自从发布了<程序员如何优雅的挣零花钱?>后,就不断有同学询问怎么做A ...

  9. JavaWeb-spring

    Java反射机制 import java.lang.reflect.Constructor; import java.lang.reflect.Method; public class Reflect ...

  10. 夺命雷公狗----Git---2---基本用法

    首先我们来创建一个git仓库,其实命令也是很简单的.. git init 其实在创建完成后,该目录会多了一个.git的文件夹,但该文件夹是隐藏的.... 其实这就是一个git仓库,特别建议不要在这个目 ...