如何与Jenkins集成.NET项目

Posted 京鸿智武

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何与Jenkins集成.NET项目相关的知识,希望对你有一定的参考价值。

大家好,在这篇文章中,我将解释如何整合JenkinsTFSNUnitOpenCoverCoberturaCatLightJIRASlack。我试图准备这篇文章来涵盖所有的细节,我希望这将有助于你持续的整合过程。

工具带

我们将使用下面的工具来分开目的。

詹金斯 - 这是我们的CI服务器。编配将与詹金斯完成。

NUnit - 这是我们的测试运行器框架。我们使用NUnit编写了测试。

OpenCover - 这是我们的测试覆盖工具,它是开源的。

ReportGenerator - 它使用.xml文件生成html报告。

OpenCoverToCoberturaConverter - 它将OpenCover结果转换为Cobertura格式。它创造更多花哨和时尚的报告。您需要构建它并生成一个可执行文件。我生成了一个,你可以在这里下载(版本2.0.4)

CatLight - 这是一个桌面版本通知器,位于系统托盘。

JIRA - 这是我们的问题跟踪和敏捷管理工具。

松弛 - 这是我们的内部消息应用程序。

詹金斯CI流程

构建行为

· 触发Jenkins并开始运行Jenkins Job。

· 连接TFS并将项目拖放到位于CI服务器上的本地文件夹中。然后,使用MSBuild构建最新版本。

· 开始运行NUnit单元测试并使用OpenCover执行代码覆盖。

· OpenCover结果转换为Cobertura覆盖结果。

构建后行动

· 发布Cobertura HTML覆盖率报告

· 发布OpenCover HTML报告

· 发布NUnit测试结果

· 更新相关的JIRA问题

· 创建JIRA问题如果构建失败。

· 如果詹金斯的工作不成功,发一封电子邮件

· 发送建立通知到相关的Slack频道。

· 如果一切顺利,我们将通过Octopus Deploy部署到测试环境。(这是另一篇文章的话题。)

· 运行自动硒测试。(这是另一篇文章的话题。)

一步一步解释

1)在服务器上安装Jenkins

https://jenkins.io/ 安装最新版本的Jenkins。我们使用Windows Server 2012,所以我安装了Windows版本。你可以在这里找到说明。

2)安装插件

Jenkins 安装下面的插件

· Team Foundation Server插件

· MSBuild插件

· NUnit插件

· HTML发布者插件

· Cobertura插件

· JIRA插件

· 闲置通知插件

如何安装Jenkins插件?

打开Jenkins然后去“ 管理Jenkins ” - >“ 管理插件 ”

然后,单击“ 可用 ”选项卡,然后将所需的插件名称写入搜索框。之后,相关的插件将出现。选择插件,然后单击安装按钮。这样,你可以安装所有的Jenkins插件。

 


3)创建一个新的工作/项目

创建一个新的Jenkins作业

创建“ 新建项目 ”图标并为您的工作命名。

点击“ 自由式项目 ”

点击“ 确定 ”按钮。

如何与Jenkins集成.NET项目

 

源代码管理

4)与TFS集成

进行源代码管理的设置。在这篇文章中,我会告诉你连接到TFS。如果你使用Git,请查阅这篇文章,了解如何连接JenkinsGit

在源代码管理部分,请点击“TFS”单选按钮,填写如下图所示的字段。

我想在C: JenkinsProjects文件夹中建立项目。

如何与Jenkins集成.NET项目

 

构建触发器

5)设置生成触发器或手动触发它

如果你想要的话可以设置一个Build Trigger,或者你可以手动触发它。我现在留空,并手动触发构建。

 

如何与Jenkins集成.NET项目


建立

6)Nuget配置

如果你使用Nuget包,你需要在构建操作之前得到它们。首先,从这里安装Nuget ,并将Nuget.exe放在C: Nuget文件夹下。

如何与Jenkins集成.NET项目

 

 

我们在我们的项目中使用自定义的Nuget包,因此我运行一个批处理命令,如下所示。

C: Nuget nuget.exe恢复“C: JenkinsProjects KariyerNet.ECommerce.sln”-ConfigFile C: Nuget nuget.config

如何与Jenkins集成.NET项目

 

在上面的命令中,我使用nuget.config文件并在其中声明了两个键。每个键代表Nuget饲料。其中一个是官方软件包,另一个是本地Nuget软件包。如果你不使用本地的Nuget包,那么你可以删除第二个“添加密钥”行。我把这个配置文件放在“ C: Nuget  ”文件夹下面,在其中我做了Nuget配置,如下所示。您可以根据您的项目设置修改此配置文件。

 

如何与Jenkins集成.NET项目


Nuget.config

XHTML


1

2

3

4

5

6

7

8

9

10

11

12

<?xml version="1.0" encoding="utf-8"?>

<configuration>

  <packageSources>

    <add key="NuGet official package source" value="https://nuget.org/api/v2/" />

    <add key="LocalNuGetFeed" value="\yourserveradressYourLocalNugetPackagesFolder" />

  </packageSources>

  <disabledPackageSources>

  </disabledPackageSources>

  <activePackageSource>

    <add key="All" value="(Aggregate source)"  />

  </activePackageSource>

</configuration>

7)MSBuild设置

我们正在使用Visual Studio 2015和.NET 4.5.2版本,因此需要从这里安装“ Microsoft Build Tools 2015 ” 。

 

如何与Jenkins集成.NET项目


安装后,进入“ 管理詹金斯 ” - >“ 全局工具配置 ”,在MSBuild部分设置你的MSBuild路径如下。

 

如何与Jenkins集成.NET项目


在最后一步,您需要添加“使用MSBuild构建Visual Studio项目或解决方案”步骤,并将您的解决方案文件设置为“ MSBuild构建文件 ”。

 

如何与Jenkins集成.NET项目


此外,从开发机器复制“ C: Program Files文件(x86) MSBuild Microsoft VisualStudio ”文件夹的所有内容,然后粘贴到您的Jenkins服务器的相同路径。

 

如何与Jenkins集成.NET项目


8)单元测试和测试覆盖设置

“ C: Tools ”文件夹下下载并解压OpenCover

 

如何与Jenkins集成.NET项目


另外,在“ C: Tools Cobertura  ” 下生成最新的OpenCovertoCoberturaConverter.exe

在这里生成0.2.4版本。

 

如何与Jenkins集成.NET项目


安装最新版本的NUnit

 

如何与Jenkins集成.NET项目


最后,添加一个“ 执行Windows批处理命令 ”步骤并根据您的项目编写如下命令。对于targettargs,请设置您的单元测试的dll文件。

注意:使用最新的NUnit Jenkins插件发布Nunit 3测试结果是有问题的。因此,我通过在下面的脚本中添加“format = nunit2”将NUnit 3格式改为NUnit 2格式。

在脚本下面,自动运行所有单元测试,并在工作区下创建TestResults.xml文件,同时运行测试覆盖率,并在工作区文件夹下创建Coverage.xml

脚本:

“C: Tools opencover OpenCover.Console.exe”-register:user -target:“C: Program Files(x86) NUnit.org nunit-console nunit3-console.exe”-targetargs:“C : JenkinsProjects {您的项目路径} bin Debug KariyerNet.Business.ECommerce.UnitTests.dll -result = TestResult.xml; format = nunit2“-filter:+

* *输出:Coverage.xml

9)OpenCover HTML报告生成

下载中心ReportGenerator并提取其在“C:工具”文件夹中。

 

如何与Jenkins集成.NET项目


然后添加“ 执行Windows批处理命令 ”,并使用Coverage.xml生成HTML报告

 

如何与Jenkins集成.NET项目


脚本:

“C: Tools ReportGenerator bin ReportGenerator.exe”-reports:Coverage.xml -targetDir:CodeCoverageHTML

10)OpenCover到Cobertura转换

这里生成OpenCoverToCoberturaConverter.exe 或从这里下载生成的exe (版本0.2.4)。

将该exe文件放在C: Tools Cobertura文件夹下。

如何与Jenkins集成.NET项目

 

然后添加一个“ 执行Windows批处理命令 ” 并将OpenCover Coverage.xml文件转换为工作空间文件夹下的Cobertura.xml文件。

 

如何与Jenkins集成.NET项目


脚本:

“C: Tools Cobertura OpenCoverToCoberturaConverter.exe”-input:Coverage.xml -output:Cobertura.xml -sources:%WORKSPACE%

然后,添加一个“ 执行Windows批处理命令 ”将Cobertura.xml文件复制到您的本地工作目录路径下。在这个例子中,我的本地工作目录是“ C: JenkinsProjects  ”,我想用这个脚本把Cobertura.xml放 在“ KariyerNet.ECommerce ”文件夹下。


 

如何与Jenkins集成.NET项目


脚本

cp“C: Program Files(x86) Jenkins jobs ECommerce workspace Cobertura.xml”“C: JenkinsProjects KariyerNet.ECommerce”

 

如何与Jenkins集成.NET项目


构建后行动

11)发布Cobertura覆盖报告

点击“ 添加后生成操作 ”按钮,然后点击“ 发布Cobertura覆盖报告 ”

如何与Jenkins集成.NET项目

 

然后,写下你的Cobertura.xml文件路径,如下所示。

如何与Jenkins集成.NET项目

 

12)发布OpenCover覆盖报告

点击“ 添加后生成动作 ”按钮,然后点击“ 发布HTML报告 ”

如何与Jenkins集成.NET项目

 

并做下面的设置。

 

如何与Jenkins集成.NET项目


13)发布NUnit测试结果报告

点击“ 添加后生成动作 ”按钮,然后点击“ 发布NUnit测试结果报告 ”

 

如何与Jenkins集成.NET项目


然后,执行下面的设置。

 

如何与Jenkins集成.NET项目


14)更新相关的JIRA问题并创建JIRA问题

JIRA Post Build之前,我们应该首先设置JIRA设置。为此,请转到“管理Jenkins” - >“配置系统”

然后,填写Jenkins位置如下。

如何与Jenkins集成.NET项目

 

然后,填写JIRA设置如下并验证它们。当你看到“成功”完成。

 

如何与Jenkins集成.NET项目

如何与Jenkins集成.NET项目


 

点击“ 添加后生成动作 ”按钮,然后点击“ 更新相关的JIRA问题 ”

点击“ 添加后生成动作 ”按钮,然后点击“ 创建JIRA问题 ”

 

如何与Jenkins集成.NET项目


之后,您可以使用JIRA项目设置填写JIRA后期构建操作。

 

如何与Jenkins集成.NET项目


15)JIRA集成设置

首先,去Jenkins安装“ Jenkins Plugin for JIRA ”

 

如何与Jenkins集成.NET项目


然后,转至管理 - > 应用程序 - > Jenkins配置

 

如何与Jenkins集成.NET项目


然后,添加一个新的网站与您的詹金斯设置。

 

如何与Jenkins集成.NET项目


如果在添加站点时没有选择,请选择自动启用作业。

 

如何与Jenkins集成.NET项目


然后,您可以在JIRA的Jenkins上看到您的工作。

如何与Jenkins集成.NET项目

 

16)电子邮件通知

首先,我们需要配置电子邮件服务器设置。转到“ 管理Jenkins ” - >“ 配置系统 ”并配置电子邮件服务器设置,如下所示。我做了我们的电子邮件服务器。

如何与Jenkins集成.NET项目

 

然后,点击“ 添加后生成动作 ”按钮,然后点击“ 电子邮件通知 ”

 

如何与Jenkins集成.NET项目


最后,根据您的需要设置您的电子邮件通知设置。

 

如何与Jenkins集成.NET项目


17)闲置通知

登录你的Slack帐户,在appdirectory搜索栏中输入Jenkins,然后搜索“ Jenkins CI ”,然后你需要按照Jenkins CI和Slack集成的说明操作。

 

如何与Jenkins集成.NET项目


安装Slack Notifier插件后,点击左侧导航栏中的Manage Jenkins,然后进入配置系统。找到全局松弛通告设置部分并添加以下值:

· 团队领域: “您的团队领域”

· 集成令牌: “您的集成令牌”

其他字段是可选的。单击栏位旁边的问号图标查看帮助文本以获取更多信息。完成后按保存按钮。

如何与Jenkins集成.NET项目

 

然后,添加“ Slack Notifications ”后建立行动,并设置您的需求复选框。

 

如何与Jenkins集成.NET项目

如何与Jenkins集成.NET项目


 

18)CatLight桌面通知器

转到https://catlight.io/,下载CatLight for windows并安装它。

安装完毕后,点击“ Jenkins ”

 

如何与Jenkins集成.NET项目


之后,配置下面的设置。

 

如何与Jenkins集成.NET项目


之后,选择相关的Jenkins作业。

 

如何与Jenkins集成.NET项目


然后你可以看到最新的运行和catlight通知。

如何与Jenkins集成.NET项目

如何与Jenkins集成.NET项目

 

 

19)运行詹金斯工作

在执行作业之前,请注意检查Jenkins服务并查看用户信息。Jenkins服务应该以您登录到服务器的用户身份启动。

 

如何与Jenkins集成.NET项目


完成所有步骤之后,就可以运行我们的Jenkins作业了。

如何与Jenkins集成.NET项目

 

当作业正在运行时,您可以在左侧窗格中看到状态

如何与Jenkins集成.NET项目

 

在作业运行时,您可以看到日志

 

如何与Jenkins集成.NET项目


运行CatLight的测试变为透明。

 

如何与Jenkins集成.NET项目


你可以看到那个工作正在运行。

 

如何与Jenkins集成.NET项目


作业完成后,您可以看到CatLight的颜色为红色/绿色/黄色。

如何与Jenkins集成.NET项目

 

工作完成后,您可以看到Jenkins仪表板上的所有结果

 

如何与Jenkins集成.NET项目


Cobertura结果

 

如何与Jenkins集成.NET项目


OpenCover结果

 

如何与Jenkins集成.NET项目


近期变动

如何与Jenkins集成.NET项目

 

测试结果

 

如何与Jenkins集成.NET项目


JIRA活动图

 

如何与Jenkins集成.NET项目


JIRA CI-建立

 

如何与Jenkins集成.NET项目


JIRA评论

 

如何与Jenkins集成.NET项目


闲置通知

 

如何与Jenkins集成.NET项目


目前为止就这样了。

 

点“阅读原文”了解更多

以上是关于如何与Jenkins集成.NET项目的主要内容,如果未能解决你的问题,请参考以下文章

DevOps-2:持续集成工具Jenkins构建.Net项目

DevOps-2:持续集成工具Jenkins构建.Net项目

Jenkins 可扩展的持续集成引擎

Jenkins 学习笔记玩转持续集成与持续交付

为Jenkins 配置 .NET 持续集成环境

Jenkins持续集成项目搭建与实践——基于Python Selenium自动化测试(自由风格)