diff --git a/index.html b/index.html index ced0000e86c9d146d28b2eb8576c785f90e8d7a9..e33b5e295356b2081b60cd08ae985da59b08ac84 100644 --- a/index.html +++ b/index.html @@ -36,7 +36,7 @@ - + @@ -265,22 +265,22 @@ var trackOutboundLink = function(id, url) { - - + + - - + + - - + + @@ -293,14 +293,14 @@ var trackOutboundLink = function(id, url) { - - + + - + diff --git a/index.json b/index.json index 2b3d5832336c6cb169878a8d3a210a052adbe2a3..9513587e3f93ffa2a5b38d9cffa014a9a6a90b21 100644 --- a/index.json +++ b/index.json @@ -12,6 +12,19 @@ "original": "", "poster": "" }, + { + "uri": "https://jenkins-zh.cn/wechat/articles/2019/05/2019-05-22-jacoco-coverage-for-functional-test/", + "title": "基于 Jenkins + JaCoCo 实现功能测试代码覆盖率统计", + "type": "wechat", + "date": "2019-05-22 00:00:00 +0000 UTC", + "tags": ["jenkins", "jacoco", "ci", "coverage"], + "description": "本文对 JaCoCo 进行简要介绍,并借助 Jenkins 实现功能测试代码覆盖率统计", + "content": " 使用 JaCoCo 统计功能测试代码覆盖率? 对于 JaCoCo,有所了解但又不是很熟悉。 \u0026ldquo;有所了解\u0026rdquo;指的是在 CI 实践中已经使用 JaCoCo 对单元测试代码覆盖率统计: 当代码 push 到代码仓库后,用 JaCoCo 进行单元测试代码覆盖率统计,并将相应数据推送到 SonarQube。 \u0026ldquo;不是很熟\u0026rdquo;指的是应用场景也仅限于此,并未进行过多研究与实践。\n前不久,有测试同事提出,想要在实际测试时,用 JaCoCo 统计功能测试代码覆盖率。 其主要目的是在经过功能测试后,通过查看代码覆盖率统计的相关指标,增强对软件质量的信心。 经查阅资料,证明这是可行的。\n由于对 JaCoCo 不甚了解,于是查阅官网资料对 JaCoCo 进一步了解。\n进一步了解 JaCoCo JaCoCo,即 Java Code Coverage,是一款开源的 Java 代码覆盖率统计工具。 它由 EclEmma 团队根据多年来使用和集成现有库的经验教训而创建。\nJaCoCo 愿景 JaCoCo 应该为基于 Java VM 的环境中的代码覆盖率分析提供标准技术。 重点是提供一个轻量级的、灵活的、文档良好的库,以便与各种构建和开发工具集成。\nJaCoCo 产品功能 指令(C0)、分支(C1)、行、方法、类型和圈复杂度的覆盖率分析。 基于 Java 字节码,因此也可以在没有源文件的情况下工作。 通过基于 Java agent 的实时检测进行简单集成。其他集成场景(如自定义类加载器)也可以通过 API 实现。 框架无关性:平稳地与基于 Java VM 的应用程序集成,比如普通 Java 程序、OSGi 框架、web 容器或 EJB 服务器。 兼容所有已发布的 Java 类文件版本。 支持不同的 JVM 语言。 支持几种报告格式( HTML、XML、CSV )。 远程协议和 JMX 控件,以便在任何时间点从覆盖率 agent 请求执行数据 dump 。 Ant 任务,用于收集和管理执行数据并创建结构化覆盖报告。 Maven 插件,用于收集覆盖信息并在Maven构建中创建报告。 非功能特性 使用简单和与现有构建脚本和工具集成。 良好的性能和最小的运行时开销,特别是对大型项目。 轻量级实现,对外部库和系统资源的依赖性最小。 全面的文档。 完整文档化的 API ( JavaDoc ) 和用于与其他工具集成的示例。 回归测试基于 JUnit 测试用例,具有完整的功能测试覆盖率。 对 JaCoCo 可以与现有构建脚本和工具进行集成这里做进一步说明: 官方提供了 Java API、Java Agent 、CLI、Ant 、Maven、Eclipse 这几种集成方式; 第三方提供了诸如与 Gradle、IDEA、Jenkins 等其它工具的集成方式。\n抛开理论,开始实践 JaCoCo 不仅支持统计本地服务的代码覆盖率,也支持统计远程服务的代码覆盖率。 单元测试覆盖率统计就是统计本地服务的代码覆盖率,代码和运行的服务在一台机器上,笔者这里通过使用 JaCoCo Maven 插件完成的。 而功能测试代码覆盖率统计则是统计远程服务的代码覆盖率,代码和运行的服务一般不在一台机器上,这里需要借助 JaCoCo Java agent 实现。 \u0026gt; 备注:实际上,JaCoCo Maven 插件也使用了 JaCoCo Java agent,不过用户不需要直接关系 Java agent 及其选项,Maven 插件都透明地处理了。\n1、下载 JaCoCo 分发包 可以从 JaCoCo 官网下载分发包,也可以从 Maven 仓库(中央仓库或私服)下载。 分发包的 lib 目录下,包括以下库:\n2、Java 应用启动脚本添加 jacocoagent 相关 JVM 参数 需要将 jacocoagent.jar 推送到部署应用的服务器上,笔者这里用 Ansible 进行了批量推送。 Java 应用启动脚本需要加入类似下面的 JVM 参数:\nJAVA_OPTS=\u0026quot;$JAVA_OPTS -javaagent:/path/jacocoagent.jar=includes=*,output=tcpserver,append=false,address=$IP,port=$JACOCO_PORT\u0026quot; 这样在应用成功启动后,会暴露一个 TCP 服务,客户端可以连接到这个服务并获取执行数据文件。\n相关属性说明如下: - append:其中 append=false 表示 dump 每次会生成一个新的执行数据文件,如果 append=true,dump 时则会将数据追加到已存在的执行数据文件。 其中 output=tcpserver 表示 agent 监听来自被 adrress 和 port 属性指定的TCP 端口的连接,执行数据被写到这个连接; - output:如果 output=tcpclient 则表示在启动时,agent 连接到被 adrress 和 port 属性指定的TCP 端口,执行数据被写到这个连接; 如果 output=file 则表示在 JVM 终止时,执行数据被写到被 destfile 属性指定的文件。output 默认值为 file 。 - address:当 output 为 tcpserver 时绑定到的 IP 地址或主机名,或者当 output 为 tcpclient 时连接到的 IP 地址或主机名。 在 tcpserver 模式下,值为“*”导致代理只接受本机地址上的连接。address 默认值为 127.0.0.1 。 - port:当 output 方式为 tcpserver 时绑定到该端口,或者当 output 方式为 tcpclient 时连接到该端口。 在 tcpserver 模式下,端口必须可用,这意味着如果多个 JaCoCo agent 在同一台机器上运行,则必须指定不同的端口。port 默认值为 6300 。\n3、创建及配置 Jenkins Pipeline 任务 Jenkins 任务大致有几个步骤:拉取代码,构建,dump 应用执行数据( jacoco.exec ),解析 JaCoCo 产生的 jacoco.exec 文件,然后生成覆盖率报告(HTML 格式)。 拉取代码这里无需多说,配置下从代码仓库(SVN/Git)和分支地址就可以了,比较简单。 构建这里用了 Jenkins Pipeline Maven Integration Plugin ,笔者这里所用的 Maven 命令是 mvn clean package -Dmaven.test.skip=true 。 dump 应用执行数据这里有多种方式:Ant、CLI、Maven,因为Java 应用是用 Maven 构建的,这里选择了 Maven Jacoco Plugin。 解析 JaCoCo 产生的 jacoco.exec 文件,然后生成覆盖率报告(HTML 格式)笔者这里使用了 Jenkins Jacoco Plugin。\nJenkins Pipeline 案例如下:\npipeline { agent any tools { jdk 'JDK1.8' } stages { stage('Checkout'){ steps{ git branch: '${GIT_BRANCH}', credentialsId: 'xxx-xxx-xx-xx-xxx', url: '${GIT_URL}' } } stage('Build') { steps{ withMaven(maven: 'maven'){ sh \u0026quot;mvn clean package -Dmaven.test.skip=true\u0026quot; } } } stage('DumpFromServer'){ steps { withMaven(maven: 'maven'){ sh 'mvn org.jacoco:jacoco-maven-plugin:0.8.4:dump -Djacoco.address=${SERVER_IP} -Djacoco.port=${JACOCO_PORT}' } } } stage('JacocoPublisher') { steps { jacoco() } } } } JaCoCo 覆盖率报告,部分截图如下:\n总结 笔者所实现的方式并未覆盖任何场景,但是大同小异,相关工具的使用详情可以查看官网文档,因为它是最全面的。 笔者希望这个实践能给有类似诉求的同行一些参考,当然笔者也希望能够和大家互相交流。 同时笔者的 JaCoCo 实践之路并未结束,可能在使用的过程中会有一些问题需要解决, 后续也将考虑使用 Jenkins API 为需要统计功能测试代码覆盖率的 Java 应用实例自动生成一个对应的 Jenkins 任务, 并在 Java 应用实例销毁后,对相应的 Jenkins 任务进行清理等其它功能。\n参考 https://www.eclemma.org/jacoco/index.html https://www.jacoco.org/jacoco/trunk/doc/integrations.html https://www.jacoco.org/jacoco/trunk/doc/agent.html https://www.jacoco.org/jacoco/trunk/doc/counters.html https://www.eclemma.org/jacoco/trunk/doc/mission.html ", + "auhtor": "donhui", + "translator": "", + "original": "", + "poster": "“./2019-05-22-jacoco-coverage-for-functional-test/hangzhou.jpg”" + }, { "uri": "https://jenkins-zh.cn/wechat/articles/2019/05/2019-05-20-jenkins-ansible-springboot/", "title": "使用 Jenkins + Ansible 实现 Spring Boot 自动化部署101", @@ -926,7 +939,7 @@ "uri": "https://jenkins-zh.cn/tags/ci/", "title": "Ci", "type": "tags", - "date": "2019-05-17 00:00:00 +0000 UTC", + "date": "2019-05-22 00:00:00 +0000 UTC", "tags": [], "description": "", "content": "", @@ -1026,6 +1039,19 @@ "original": "", "poster": "" }, + { + "uri": "https://jenkins-zh.cn/tags/coverage/", + "title": "Coverage", + "type": "tags", + "date": "2019-05-22 00:00:00 +0000 UTC", + "tags": [], + "description": "", + "content": "", + "auhtor": "", + "translator": "", + "original": "", + "poster": "" + }, { "uri": "https://jenkins-zh.cn/wechat/articles/2018/12/2018-12-5-custom-war-packager/", "title": "Custom WAR Packager", @@ -1208,6 +1234,19 @@ "original": "", "poster": "" }, + { + "uri": "https://jenkins-zh.cn/tags/jacoco/", + "title": "Jacoco", + "type": "tags", + "date": "2019-05-22 00:00:00 +0000 UTC", + "tags": [], + "description": "", + "content": "", + "auhtor": "", + "translator": "", + "original": "", + "poster": "" + }, { "uri": "https://jenkins-zh.cn/tags/java11/", "title": "Java11", @@ -1225,7 +1264,7 @@ "uri": "https://jenkins-zh.cn/tags/jenkins/", "title": "Jenkins", "type": "tags", - "date": "2019-05-20 00:00:00 +0000 UTC", + "date": "2019-05-22 00:00:00 +0000 UTC", "tags": [], "description": "", "content": "", @@ -1277,7 +1316,7 @@ "uri": "https://jenkins-zh.cn/", "title": "Jenkins 中文社区", "type": "page", - "date": "2019-05-20 00:00:00 +0000 UTC", + "date": "2019-05-22 00:00:00 +0000 UTC", "tags": [], "description": "", "content": "", @@ -1745,7 +1784,7 @@ "uri": "https://jenkins-zh.cn/wechat/", "title": "Wechats", "type": "wechat", - "date": "2019-05-20 00:00:00 +0000 UTC", + "date": "2019-05-22 00:00:00 +0000 UTC", "tags": [], "description": "", "content": "", diff --git a/index.xml b/index.xml index 87963123d375a7c206a718590373bf22ac1508e4..cd39c690ea265d4bc9b6ce7cdf30e3b3317d4af7 100644 --- a/index.xml +++ b/index.xml @@ -6,7 +6,7 @@ Recent content on Jenkins 中文社区 Hugo -- gohugo.io zh-CN - Mon, 20 May 2019 00:00:00 +0000 + Wed, 22 May 2019 00:00:00 +0000 @@ -24,6 +24,20 @@ GitHub 请您使用同一个 GitHub 账号来与大家交流,不欢迎使用所谓的“小号”。 + + 基于 Jenkins + JaCoCo 实现功能测试代码覆盖率统计 + https://jenkins-zh.cn/wechat/articles/2019/05/2019-05-22-jacoco-coverage-for-functional-test/ + Wed, 22 May 2019 00:00:00 +0000 + + https://jenkins-zh.cn/wechat/articles/2019/05/2019-05-22-jacoco-coverage-for-functional-test/ + 使用 JaCoCo 统计功能测试代码覆盖率? 对于 JaCoCo,有所了解但又不是很熟悉。 “有所了解”指的是在 CI 实践中已经使用 JaCoCo 对单元测试代码覆盖率统计: 当代码 push 到代码仓库后,用 JaCoCo 进行单元测试代码覆盖率统计,并将相应数据推送到 SonarQube。 “不是很熟”指的是应用场景也仅限于此,并未进行过多研究与实践。 +前不久,有测试同事提出,想要在实际测试时,用 JaCoCo 统计功能测试代码覆盖率。 其主要目的是在经过功能测试后,通过查看代码覆盖率统计的相关指标,增强对软件质量的信心。 经查阅资料,证明这是可行的。 +由于对 JaCoCo 不甚了解,于是查阅官网资料对 JaCoCo 进一步了解。 +进一步了解 JaCoCo JaCoCo,即 Java Code Coverage,是一款开源的 Java 代码覆盖率统计工具。 它由 EclEmma 团队根据多年来使用和集成现有库的经验教训而创建。 +JaCoCo 愿景 JaCoCo 应该为基于 Java VM 的环境中的代码覆盖率分析提供标准技术。 重点是提供一个轻量级的、灵活的、文档良好的库,以便与各种构建和开发工具集成。 +JaCoCo 产品功能 指令(C0)、分支(C1)、行、方法、类型和圈复杂度的覆盖率分析。 基于 Java 字节码,因此也可以在没有源文件的情况下工作。 通过基于 Java agent 的实时检测进行简单集成。其他集成场景(如自定义类加载器)也可以通过 API 实现。 框架无关性:平稳地与基于 Java VM 的应用程序集成,比如普通 Java 程序、OSGi 框架、web 容器或 EJB 服务器。 兼容所有已发布的 Java 类文件版本。 支持不同的 JVM 语言。 支持几种报告格式( HTML、XML、CSV )。 远程协议和 JMX 控件,以便在任何时间点从覆盖率 agent 请求执行数据 dump 。 Ant 任务,用于收集和管理执行数据并创建结构化覆盖报告。 Maven 插件,用于收集覆盖信息并在Maven构建中创建报告。 非功能特性 使用简单和与现有构建脚本和工具集成。 良好的性能和最小的运行时开销,特别是对大型项目。 轻量级实现,对外部库和系统资源的依赖性最小。 全面的文档。 完整文档化的 API ( JavaDoc ) 和用于与其他工具集成的示例。 回归测试基于 JUnit 测试用例,具有完整的功能测试覆盖率。 对 JaCoCo 可以与现有构建脚本和工具进行集成这里做进一步说明: 官方提供了 Java API、Java Agent 、CLI、Ant 、Maven、Eclipse 这几种集成方式; 第三方提供了诸如与 Gradle、IDEA、Jenkins 等其它工具的集成方式。 + + 使用 Jenkins + Ansible 实现 Spring Boot 自动化部署101 https://jenkins-zh.cn/wechat/articles/2019/05/2019-05-20-jenkins-ansible-springboot/ diff --git a/sitemap.xml b/sitemap.xml index b2e22ccff1c79f2103592a6d3591295343380276..a11235c4dbbbf6a6a83437b9c474cb2819a35a07 100644 --- a/sitemap.xml +++ b/sitemap.xml @@ -6,6 +6,11 @@ https://jenkins-zh.cn/about/code-of-conduct/ + + https://jenkins-zh.cn/wechat/articles/2019/05/2019-05-22-jacoco-coverage-for-functional-test/ + 2019-05-22T00:00:00+00:00 + + https://jenkins-zh.cn/wechat/articles/2019/05/2019-05-20-jenkins-ansible-springboot/ 2019-05-20T00:00:00+00:00 @@ -343,7 +348,7 @@ https://jenkins-zh.cn/tags/ci/ - 2019-05-17T00:00:00+00:00 + 2019-05-22T00:00:00+00:00 0 @@ -387,6 +392,12 @@ 0 + + https://jenkins-zh.cn/tags/coverage/ + 2019-05-22T00:00:00+00:00 + 0 + + https://jenkins-zh.cn/wechat/articles/2018/12/2018-12-5-custom-war-packager/ @@ -465,6 +476,12 @@ 0 + + https://jenkins-zh.cn/tags/jacoco/ + 2019-05-22T00:00:00+00:00 + 0 + + https://jenkins-zh.cn/tags/java11/ 2019-02-20T00:00:00+00:00 @@ -473,7 +490,7 @@ https://jenkins-zh.cn/tags/jenkins/ - 2019-05-20T00:00:00+00:00 + 2019-05-22T00:00:00+00:00 0 @@ -493,7 +510,7 @@ https://jenkins-zh.cn/ - 2019-05-20T00:00:00+00:00 + 2019-05-22T00:00:00+00:00 0 @@ -688,7 +705,7 @@ https://jenkins-zh.cn/wechat/ - 2019-05-20T00:00:00+00:00 + 2019-05-22T00:00:00+00:00 0 diff --git a/tags/ci/index.html b/tags/ci/index.html index 172b1d7541e933021f02da696d4048ab6730e8c4..deb38d1354c7ef414b6a12f78c86ccc0bd54bab4 100644 --- a/tags/ci/index.html +++ b/tags/ci/index.html @@ -35,7 +35,7 @@ - + @@ -185,6 +185,33 @@ var trackOutboundLink = function(id, url) {
+

+ 基于 Jenkins + JaCoCo 实现功能测试代码覆盖率统计 +

+ + + + +
+ + + + + +
+ +
+ +

从 Jenkins 到 Jenkins X

diff --git a/tags/ci/index.xml b/tags/ci/index.xml index 893b9505ed4ae0d8f99509adb8edea89ddb0bd8a..20c80b4d327778bed0bb2b753b7304e427ebb62f 100644 --- a/tags/ci/index.xml +++ b/tags/ci/index.xml @@ -6,11 +6,25 @@ Recent content in Ci on Jenkins 中文社区 Hugo -- gohugo.io zh-CN - Fri, 17 May 2019 00:00:00 +0000 + Wed, 22 May 2019 00:00:00 +0000 + + 基于 Jenkins + JaCoCo 实现功能测试代码覆盖率统计 + https://jenkins-zh.cn/wechat/articles/2019/05/2019-05-22-jacoco-coverage-for-functional-test/ + Wed, 22 May 2019 00:00:00 +0000 + + https://jenkins-zh.cn/wechat/articles/2019/05/2019-05-22-jacoco-coverage-for-functional-test/ + 使用 JaCoCo 统计功能测试代码覆盖率? 对于 JaCoCo,有所了解但又不是很熟悉。 “有所了解”指的是在 CI 实践中已经使用 JaCoCo 对单元测试代码覆盖率统计: 当代码 push 到代码仓库后,用 JaCoCo 进行单元测试代码覆盖率统计,并将相应数据推送到 SonarQube。 “不是很熟”指的是应用场景也仅限于此,并未进行过多研究与实践。 +前不久,有测试同事提出,想要在实际测试时,用 JaCoCo 统计功能测试代码覆盖率。 其主要目的是在经过功能测试后,通过查看代码覆盖率统计的相关指标,增强对软件质量的信心。 经查阅资料,证明这是可行的。 +由于对 JaCoCo 不甚了解,于是查阅官网资料对 JaCoCo 进一步了解。 +进一步了解 JaCoCo JaCoCo,即 Java Code Coverage,是一款开源的 Java 代码覆盖率统计工具。 它由 EclEmma 团队根据多年来使用和集成现有库的经验教训而创建。 +JaCoCo 愿景 JaCoCo 应该为基于 Java VM 的环境中的代码覆盖率分析提供标准技术。 重点是提供一个轻量级的、灵活的、文档良好的库,以便与各种构建和开发工具集成。 +JaCoCo 产品功能 指令(C0)、分支(C1)、行、方法、类型和圈复杂度的覆盖率分析。 基于 Java 字节码,因此也可以在没有源文件的情况下工作。 通过基于 Java agent 的实时检测进行简单集成。其他集成场景(如自定义类加载器)也可以通过 API 实现。 框架无关性:平稳地与基于 Java VM 的应用程序集成,比如普通 Java 程序、OSGi 框架、web 容器或 EJB 服务器。 兼容所有已发布的 Java 类文件版本。 支持不同的 JVM 语言。 支持几种报告格式( HTML、XML、CSV )。 远程协议和 JMX 控件,以便在任何时间点从覆盖率 agent 请求执行数据 dump 。 Ant 任务,用于收集和管理执行数据并创建结构化覆盖报告。 Maven 插件,用于收集覆盖信息并在Maven构建中创建报告。 非功能特性 使用简单和与现有构建脚本和工具集成。 良好的性能和最小的运行时开销,特别是对大型项目。 轻量级实现,对外部库和系统资源的依赖性最小。 全面的文档。 完整文档化的 API ( JavaDoc ) 和用于与其他工具集成的示例。 回归测试基于 JUnit 测试用例,具有完整的功能测试覆盖率。 对 JaCoCo 可以与现有构建脚本和工具进行集成这里做进一步说明: 官方提供了 Java API、Java Agent 、CLI、Ant 、Maven、Eclipse 这几种集成方式; 第三方提供了诸如与 Gradle、IDEA、Jenkins 等其它工具的集成方式。 + + 从 Jenkins 到 Jenkins X https://jenkins-zh.cn/wechat/articles/2019/05/2019-05-17-from-jenkins-to-jenkins-x/ diff --git a/tags/coverage/index.html b/tags/coverage/index.html new file mode 100644 index 0000000000000000000000000000000000000000..09fdcf18ebef4dde08a7df842f09d7532ed8536f --- /dev/null +++ b/tags/coverage/index.html @@ -0,0 +1,333 @@ + + + + + + + + + + + + Coverage | Jenkins 中文社区 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ +
+ + +
+ + + + +
+ +
+ + +
+ +
+ + +

+ 基于 Jenkins + JaCoCo 实现功能测试代码覆盖率统计 +

+ + + + +
+
+ + + +
+
+ + + + +
+ +
+ +
+ +
+ + + + + + + + + + + + + + + + diff --git a/tags/coverage/index.xml b/tags/coverage/index.xml new file mode 100644 index 0000000000000000000000000000000000000000..53d38374557a1c99c181042a5ae9b9d85cc7ae61 --- /dev/null +++ b/tags/coverage/index.xml @@ -0,0 +1,29 @@ + + + + Coverage on Jenkins 中文社区 + https://jenkins-zh.cn/tags/coverage/ + Recent content in Coverage on Jenkins 中文社区 + Hugo -- gohugo.io + zh-CN + Wed, 22 May 2019 00:00:00 +0000 + + + + + + 基于 Jenkins + JaCoCo 实现功能测试代码覆盖率统计 + https://jenkins-zh.cn/wechat/articles/2019/05/2019-05-22-jacoco-coverage-for-functional-test/ + Wed, 22 May 2019 00:00:00 +0000 + + https://jenkins-zh.cn/wechat/articles/2019/05/2019-05-22-jacoco-coverage-for-functional-test/ + 使用 JaCoCo 统计功能测试代码覆盖率? 对于 JaCoCo,有所了解但又不是很熟悉。 “有所了解”指的是在 CI 实践中已经使用 JaCoCo 对单元测试代码覆盖率统计: 当代码 push 到代码仓库后,用 JaCoCo 进行单元测试代码覆盖率统计,并将相应数据推送到 SonarQube。 “不是很熟”指的是应用场景也仅限于此,并未进行过多研究与实践。 +前不久,有测试同事提出,想要在实际测试时,用 JaCoCo 统计功能测试代码覆盖率。 其主要目的是在经过功能测试后,通过查看代码覆盖率统计的相关指标,增强对软件质量的信心。 经查阅资料,证明这是可行的。 +由于对 JaCoCo 不甚了解,于是查阅官网资料对 JaCoCo 进一步了解。 +进一步了解 JaCoCo JaCoCo,即 Java Code Coverage,是一款开源的 Java 代码覆盖率统计工具。 它由 EclEmma 团队根据多年来使用和集成现有库的经验教训而创建。 +JaCoCo 愿景 JaCoCo 应该为基于 Java VM 的环境中的代码覆盖率分析提供标准技术。 重点是提供一个轻量级的、灵活的、文档良好的库,以便与各种构建和开发工具集成。 +JaCoCo 产品功能 指令(C0)、分支(C1)、行、方法、类型和圈复杂度的覆盖率分析。 基于 Java 字节码,因此也可以在没有源文件的情况下工作。 通过基于 Java agent 的实时检测进行简单集成。其他集成场景(如自定义类加载器)也可以通过 API 实现。 框架无关性:平稳地与基于 Java VM 的应用程序集成,比如普通 Java 程序、OSGi 框架、web 容器或 EJB 服务器。 兼容所有已发布的 Java 类文件版本。 支持不同的 JVM 语言。 支持几种报告格式( HTML、XML、CSV )。 远程协议和 JMX 控件,以便在任何时间点从覆盖率 agent 请求执行数据 dump 。 Ant 任务,用于收集和管理执行数据并创建结构化覆盖报告。 Maven 插件,用于收集覆盖信息并在Maven构建中创建报告。 非功能特性 使用简单和与现有构建脚本和工具集成。 良好的性能和最小的运行时开销,特别是对大型项目。 轻量级实现,对外部库和系统资源的依赖性最小。 全面的文档。 完整文档化的 API ( JavaDoc ) 和用于与其他工具集成的示例。 回归测试基于 JUnit 测试用例,具有完整的功能测试覆盖率。 对 JaCoCo 可以与现有构建脚本和工具进行集成这里做进一步说明: 官方提供了 Java API、Java Agent 、CLI、Ant 、Maven、Eclipse 这几种集成方式; 第三方提供了诸如与 Gradle、IDEA、Jenkins 等其它工具的集成方式。 + + + + \ No newline at end of file diff --git a/tags/coverage/page/1/index.html b/tags/coverage/page/1/index.html new file mode 100644 index 0000000000000000000000000000000000000000..aaf3702953b8747d2479a1640d5b33ddf4989db5 --- /dev/null +++ b/tags/coverage/page/1/index.html @@ -0,0 +1 @@ +https://jenkins-zh.cn/tags/coverage/ \ No newline at end of file diff --git a/tags/index.html b/tags/index.html index c9c8175cf62c3f87de7b23548925a62e5055f2c2..bafacdaac7a51500a33f08d32adf540b08b04739 100644 --- a/tags/index.html +++ b/tags/index.html @@ -341,6 +341,12 @@ var trackOutboundLink = function(id, url) { +

+ + 基于 Jenkins + JaCoCo 实现功能测试代码覆盖率统计 + +

+

从 Jenkins 到 Jenkins X @@ -558,6 +564,22 @@ var trackOutboundLink = function(id, url) {

+ + + + + +

@@ -833,6 +871,12 @@ var trackOutboundLink = function(id, url) {

+

+ + 基于 Jenkins + JaCoCo 实现功能测试代码覆盖率统计 + +

+

使用 Jenkins + Ansible 实现 Spring Boot 自动化部署101 diff --git a/tags/index.xml b/tags/index.xml index 0c80c9150113090ce261bb051200beabee7b4970..0b8c7b2d5be7e243eb39c0da5995d1e0e0031c4d 100644 --- a/tags/index.xml +++ b/tags/index.xml @@ -68,7 +68,7 @@ Ci https://jenkins-zh.cn/tags/ci/ - Fri, 17 May 2019 00:00:00 +0000 + Wed, 22 May 2019 00:00:00 +0000 https://jenkins-zh.cn/tags/ci/ @@ -137,6 +137,15 @@ + + Coverage + https://jenkins-zh.cn/tags/coverage/ + Wed, 22 May 2019 00:00:00 +0000 + + https://jenkins-zh.cn/tags/coverage/ + + + Developer https://jenkins-zh.cn/tags/developer/ @@ -245,6 +254,15 @@ + + Jacoco + https://jenkins-zh.cn/tags/jacoco/ + Wed, 22 May 2019 00:00:00 +0000 + + https://jenkins-zh.cn/tags/jacoco/ + + + Java11 https://jenkins-zh.cn/tags/java11/ @@ -257,7 +275,7 @@ Jenkins https://jenkins-zh.cn/tags/jenkins/ - Mon, 20 May 2019 00:00:00 +0000 + Wed, 22 May 2019 00:00:00 +0000 https://jenkins-zh.cn/tags/jenkins/ diff --git a/tags/jacoco/index.html b/tags/jacoco/index.html new file mode 100644 index 0000000000000000000000000000000000000000..1d3b63d87af563242590a3a8a81ab789ca8df004 --- /dev/null +++ b/tags/jacoco/index.html @@ -0,0 +1,333 @@ + + + + + + + + + + + + Jacoco | Jenkins 中文社区 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ +
+ + +
+ + + + +
+ +
+ + +
+ +
+ + +

+ 基于 Jenkins + JaCoCo 实现功能测试代码覆盖率统计 +

+ + + + +
+
+ + + +
+
+ + + + +
+ +
+ +
+ +
+ + + + + + + + + + + + + + + + diff --git a/tags/jacoco/index.xml b/tags/jacoco/index.xml new file mode 100644 index 0000000000000000000000000000000000000000..15bfe133da83ff39c5dfe6fb092ce2e6246667f1 --- /dev/null +++ b/tags/jacoco/index.xml @@ -0,0 +1,29 @@ + + + + Jacoco on Jenkins 中文社区 + https://jenkins-zh.cn/tags/jacoco/ + Recent content in Jacoco on Jenkins 中文社区 + Hugo -- gohugo.io + zh-CN + Wed, 22 May 2019 00:00:00 +0000 + + + + + + 基于 Jenkins + JaCoCo 实现功能测试代码覆盖率统计 + https://jenkins-zh.cn/wechat/articles/2019/05/2019-05-22-jacoco-coverage-for-functional-test/ + Wed, 22 May 2019 00:00:00 +0000 + + https://jenkins-zh.cn/wechat/articles/2019/05/2019-05-22-jacoco-coverage-for-functional-test/ + 使用 JaCoCo 统计功能测试代码覆盖率? 对于 JaCoCo,有所了解但又不是很熟悉。 “有所了解”指的是在 CI 实践中已经使用 JaCoCo 对单元测试代码覆盖率统计: 当代码 push 到代码仓库后,用 JaCoCo 进行单元测试代码覆盖率统计,并将相应数据推送到 SonarQube。 “不是很熟”指的是应用场景也仅限于此,并未进行过多研究与实践。 +前不久,有测试同事提出,想要在实际测试时,用 JaCoCo 统计功能测试代码覆盖率。 其主要目的是在经过功能测试后,通过查看代码覆盖率统计的相关指标,增强对软件质量的信心。 经查阅资料,证明这是可行的。 +由于对 JaCoCo 不甚了解,于是查阅官网资料对 JaCoCo 进一步了解。 +进一步了解 JaCoCo JaCoCo,即 Java Code Coverage,是一款开源的 Java 代码覆盖率统计工具。 它由 EclEmma 团队根据多年来使用和集成现有库的经验教训而创建。 +JaCoCo 愿景 JaCoCo 应该为基于 Java VM 的环境中的代码覆盖率分析提供标准技术。 重点是提供一个轻量级的、灵活的、文档良好的库,以便与各种构建和开发工具集成。 +JaCoCo 产品功能 指令(C0)、分支(C1)、行、方法、类型和圈复杂度的覆盖率分析。 基于 Java 字节码,因此也可以在没有源文件的情况下工作。 通过基于 Java agent 的实时检测进行简单集成。其他集成场景(如自定义类加载器)也可以通过 API 实现。 框架无关性:平稳地与基于 Java VM 的应用程序集成,比如普通 Java 程序、OSGi 框架、web 容器或 EJB 服务器。 兼容所有已发布的 Java 类文件版本。 支持不同的 JVM 语言。 支持几种报告格式( HTML、XML、CSV )。 远程协议和 JMX 控件,以便在任何时间点从覆盖率 agent 请求执行数据 dump 。 Ant 任务,用于收集和管理执行数据并创建结构化覆盖报告。 Maven 插件,用于收集覆盖信息并在Maven构建中创建报告。 非功能特性 使用简单和与现有构建脚本和工具集成。 良好的性能和最小的运行时开销,特别是对大型项目。 轻量级实现,对外部库和系统资源的依赖性最小。 全面的文档。 完整文档化的 API ( JavaDoc ) 和用于与其他工具集成的示例。 回归测试基于 JUnit 测试用例,具有完整的功能测试覆盖率。 对 JaCoCo 可以与现有构建脚本和工具进行集成这里做进一步说明: 官方提供了 Java API、Java Agent 、CLI、Ant 、Maven、Eclipse 这几种集成方式; 第三方提供了诸如与 Gradle、IDEA、Jenkins 等其它工具的集成方式。 + + + + \ No newline at end of file diff --git a/tags/jacoco/page/1/index.html b/tags/jacoco/page/1/index.html new file mode 100644 index 0000000000000000000000000000000000000000..4cd0b4244f4811fbce60c1266663430678089354 --- /dev/null +++ b/tags/jacoco/page/1/index.html @@ -0,0 +1 @@ +https://jenkins-zh.cn/tags/jacoco/ \ No newline at end of file diff --git a/tags/jenkins/index.html b/tags/jenkins/index.html index b5ef97b57310a44b0acfe9002e18bb954463b7cc..2bd7a1db75b7aefb57b46cab54a6ec0dacb73123 100644 --- a/tags/jenkins/index.html +++ b/tags/jenkins/index.html @@ -35,7 +35,7 @@ - + @@ -185,6 +185,33 @@ var trackOutboundLink = function(id, url) {
+

+ 基于 Jenkins + JaCoCo 实现功能测试代码覆盖率统计 +

+ + + + +
+

+ + + + +
+ +
+ +

使用 Jenkins + Ansible 实现 Spring Boot 自动化部署101

diff --git a/tags/jenkins/index.xml b/tags/jenkins/index.xml index 147ec77b10b17f9a4857155f7033d86735adbe2f..ba1da342bb618ea873a2cafd3bff200dd59b7cb7 100644 --- a/tags/jenkins/index.xml +++ b/tags/jenkins/index.xml @@ -6,11 +6,25 @@ Recent content in Jenkins on Jenkins 中文社区 Hugo -- gohugo.io zh-CN - Mon, 20 May 2019 00:00:00 +0000 + Wed, 22 May 2019 00:00:00 +0000 + + 基于 Jenkins + JaCoCo 实现功能测试代码覆盖率统计 + https://jenkins-zh.cn/wechat/articles/2019/05/2019-05-22-jacoco-coverage-for-functional-test/ + Wed, 22 May 2019 00:00:00 +0000 + + https://jenkins-zh.cn/wechat/articles/2019/05/2019-05-22-jacoco-coverage-for-functional-test/ + 使用 JaCoCo 统计功能测试代码覆盖率? 对于 JaCoCo,有所了解但又不是很熟悉。 “有所了解”指的是在 CI 实践中已经使用 JaCoCo 对单元测试代码覆盖率统计: 当代码 push 到代码仓库后,用 JaCoCo 进行单元测试代码覆盖率统计,并将相应数据推送到 SonarQube。 “不是很熟”指的是应用场景也仅限于此,并未进行过多研究与实践。 +前不久,有测试同事提出,想要在实际测试时,用 JaCoCo 统计功能测试代码覆盖率。 其主要目的是在经过功能测试后,通过查看代码覆盖率统计的相关指标,增强对软件质量的信心。 经查阅资料,证明这是可行的。 +由于对 JaCoCo 不甚了解,于是查阅官网资料对 JaCoCo 进一步了解。 +进一步了解 JaCoCo JaCoCo,即 Java Code Coverage,是一款开源的 Java 代码覆盖率统计工具。 它由 EclEmma 团队根据多年来使用和集成现有库的经验教训而创建。 +JaCoCo 愿景 JaCoCo 应该为基于 Java VM 的环境中的代码覆盖率分析提供标准技术。 重点是提供一个轻量级的、灵活的、文档良好的库,以便与各种构建和开发工具集成。 +JaCoCo 产品功能 指令(C0)、分支(C1)、行、方法、类型和圈复杂度的覆盖率分析。 基于 Java 字节码,因此也可以在没有源文件的情况下工作。 通过基于 Java agent 的实时检测进行简单集成。其他集成场景(如自定义类加载器)也可以通过 API 实现。 框架无关性:平稳地与基于 Java VM 的应用程序集成,比如普通 Java 程序、OSGi 框架、web 容器或 EJB 服务器。 兼容所有已发布的 Java 类文件版本。 支持不同的 JVM 语言。 支持几种报告格式( HTML、XML、CSV )。 远程协议和 JMX 控件,以便在任何时间点从覆盖率 agent 请求执行数据 dump 。 Ant 任务,用于收集和管理执行数据并创建结构化覆盖报告。 Maven 插件,用于收集覆盖信息并在Maven构建中创建报告。 非功能特性 使用简单和与现有构建脚本和工具集成。 良好的性能和最小的运行时开销,特别是对大型项目。 轻量级实现,对外部库和系统资源的依赖性最小。 全面的文档。 完整文档化的 API ( JavaDoc ) 和用于与其他工具集成的示例。 回归测试基于 JUnit 测试用例,具有完整的功能测试覆盖率。 对 JaCoCo 可以与现有构建脚本和工具进行集成这里做进一步说明: 官方提供了 Java API、Java Agent 、CLI、Ant 、Maven、Eclipse 这几种集成方式; 第三方提供了诸如与 Gradle、IDEA、Jenkins 等其它工具的集成方式。 + + 使用 Jenkins + Ansible 实现 Spring Boot 自动化部署101 https://jenkins-zh.cn/wechat/articles/2019/05/2019-05-20-jenkins-ansible-springboot/ diff --git a/tags/jenkins/page/2/index.html b/tags/jenkins/page/2/index.html index c6c66f2d6fed7ab62e51358fb7450f294d97671d..84805d4aa343d2110a0f35f12d9d3afd18429574 100644 --- a/tags/jenkins/page/2/index.html +++ b/tags/jenkins/page/2/index.html @@ -35,7 +35,7 @@ - + @@ -185,6 +185,33 @@ var trackOutboundLink = function(id, url) {
+

+ 基于 Jenkins + JaCoCo 实现功能测试代码覆盖率统计 +

+ + + + +
+
+ + + + +
+ +
+ +

使用 Jenkins + Ansible 实现 Spring Boot 自动化部署101

diff --git a/tags/jenkins/page/3/index.html b/tags/jenkins/page/3/index.html index 09713287c5d06cc074b43902e829aeca2328cbf4..bb9d567b8bc2dd686d9781717997a9d5900b1e3b 100644 --- a/tags/jenkins/page/3/index.html +++ b/tags/jenkins/page/3/index.html @@ -35,7 +35,7 @@ - + @@ -185,6 +185,33 @@ var trackOutboundLink = function(id, url) {
+

+ 基于 Jenkins + JaCoCo 实现功能测试代码覆盖率统计 +

+ + + + +
+
+ + + + +
+ +
+ +

使用 Jenkins + Ansible 实现 Spring Boot 自动化部署101

diff --git a/wechat/articles/2019/01/2019-01-16-webhook-firewalls/index.html b/wechat/articles/2019/01/2019-01-16-webhook-firewalls/index.html index 2fd8950712f408d0533bc9ed7f7731aa53b92d6c..563ce37494038656eca55d80f72f4edd8f9a3e2d 100644 --- a/wechat/articles/2019/01/2019-01-16-webhook-firewalls/index.html +++ b/wechat/articles/2019/01/2019-01-16-webhook-firewalls/index.html @@ -445,8 +445,8 @@ f6 ph3 pv1 br2 dib tc ttu mv3 bg-primary-color white hover-bg-green link
  • - - 使用 Jenkins + Ansible 实现 Spring Boot 自动化部署101 + + 基于 Jenkins + JaCoCo 实现功能测试代码覆盖率统计
  • @@ -457,6 +457,15 @@ f6 ph3 pv1 br2 dib tc ttu mv3 bg-primary-color white hover-bg-green link +
  • + + 使用 Jenkins + Ansible 实现 Spring Boot 自动化部署101 + +
  • + + + +
  • 从 Jenkins 到 Jenkins X diff --git a/wechat/articles/2019/02/2019-02-27-jenkins-script-console-in-practice/index.html b/wechat/articles/2019/02/2019-02-27-jenkins-script-console-in-practice/index.html index 4099194c648f428759633096647efe35dfe8e1a5..7b0aaa592cc60bc74274d2f446e96e1b897591d1 100644 --- a/wechat/articles/2019/02/2019-02-27-jenkins-script-console-in-practice/index.html +++ b/wechat/articles/2019/02/2019-02-27-jenkins-script-console-in-practice/index.html @@ -389,8 +389,8 @@ f6 ph3 pv1 br2 dib tc ttu mv3 bg-primary-color white hover-bg-green link
  • - - 使用 Jenkins + Ansible 实现 Spring Boot 自动化部署101 + + 基于 Jenkins + JaCoCo 实现功能测试代码覆盖率统计
  • @@ -401,6 +401,15 @@ f6 ph3 pv1 br2 dib tc ttu mv3 bg-primary-color white hover-bg-green link +
  • + + 使用 Jenkins + Ansible 实现 Spring Boot 自动化部署101 + +
  • + + + +
  • 从 Jenkins 到 Jenkins X diff --git a/wechat/articles/2019/03/2019-01-08-mpl-modular-pipeline-library/index.html b/wechat/articles/2019/03/2019-01-08-mpl-modular-pipeline-library/index.html index 6fc4e783eebbdfd321e182849da80c7b287cf7dc..45324a3ccc70ae9268e7fa5c1b591ea28d6868f3 100644 --- a/wechat/articles/2019/03/2019-01-08-mpl-modular-pipeline-library/index.html +++ b/wechat/articles/2019/03/2019-01-08-mpl-modular-pipeline-library/index.html @@ -546,8 +546,8 @@ f6 ph3 pv1 br2 dib tc ttu mv3 bg-primary-color white hover-bg-green link
  • - - 使用 Jenkins + Ansible 实现 Spring Boot 自动化部署101 + + 基于 Jenkins + JaCoCo 实现功能测试代码覆盖率统计
  • @@ -558,6 +558,15 @@ f6 ph3 pv1 br2 dib tc ttu mv3 bg-primary-color white hover-bg-green link +
  • + + 使用 Jenkins + Ansible 实现 Spring Boot 自动化部署101 + +
  • + + + +
  • 从 Jenkins 到 Jenkins X diff --git a/wechat/articles/2019/03/2019-03-13-electron-pipeline-demo/index.html b/wechat/articles/2019/03/2019-03-13-electron-pipeline-demo/index.html index c6631e08e8e55aeef26f91ac5b7f296804e41eb1..d2aaacc8a91757d73d063ed58049404fb040c14c 100644 --- a/wechat/articles/2019/03/2019-03-13-electron-pipeline-demo/index.html +++ b/wechat/articles/2019/03/2019-03-13-electron-pipeline-demo/index.html @@ -468,8 +468,8 @@ f6 ph3 pv1 br2 dib tc ttu mv3 bg-primary-color white hover-bg-green link
  • - - 使用 Jenkins + Ansible 实现 Spring Boot 自动化部署101 + + 基于 Jenkins + JaCoCo 实现功能测试代码覆盖率统计
  • @@ -480,6 +480,15 @@ f6 ph3 pv1 br2 dib tc ttu mv3 bg-primary-color white hover-bg-green link +
  • + + 使用 Jenkins + Ansible 实现 Spring Boot 自动化部署101 + +
  • + + + +
  • 从 Jenkins 到 Jenkins X diff --git a/wechat/articles/2019/04/2019-04-08-becoming-contributor-intro/index.html b/wechat/articles/2019/04/2019-04-08-becoming-contributor-intro/index.html index 27be6b7393f16bf08cbe681fd226e4a7edf32246..569a8a99a83610ee05367b684a9b470588e1f05c 100644 --- a/wechat/articles/2019/04/2019-04-08-becoming-contributor-intro/index.html +++ b/wechat/articles/2019/04/2019-04-08-becoming-contributor-intro/index.html @@ -478,8 +478,8 @@ f6 ph3 pv1 br2 dib tc ttu mv3 bg-primary-color white hover-bg-green link
  • - - 使用 Jenkins + Ansible 实现 Spring Boot 自动化部署101 + + 基于 Jenkins + JaCoCo 实现功能测试代码覆盖率统计
  • @@ -490,6 +490,15 @@ f6 ph3 pv1 br2 dib tc ttu mv3 bg-primary-color white hover-bg-green link +
  • + + 使用 Jenkins + Ansible 实现 Spring Boot 自动化部署101 + +
  • + + + +
  • 从 Jenkins 到 Jenkins X diff --git a/wechat/articles/2019/04/2019-04-12-brief-analysis-the-encryption-algorithm-of-the-built-in-jenkins-user-database/index.html b/wechat/articles/2019/04/2019-04-12-brief-analysis-the-encryption-algorithm-of-the-built-in-jenkins-user-database/index.html index 69b67c66f8e04eafef952772c645e4b68e6df80a..e3f88358d2e6020ce28d710c5a2c17e4c1582387 100644 --- a/wechat/articles/2019/04/2019-04-12-brief-analysis-the-encryption-algorithm-of-the-built-in-jenkins-user-database/index.html +++ b/wechat/articles/2019/04/2019-04-12-brief-analysis-the-encryption-algorithm-of-the-built-in-jenkins-user-database/index.html @@ -422,8 +422,8 @@ f6 ph3 pv1 br2 dib tc ttu mv3 bg-primary-color white hover-bg-green link
  • - - 使用 Jenkins + Ansible 实现 Spring Boot 自动化部署101 + + 基于 Jenkins + JaCoCo 实现功能测试代码覆盖率统计
  • @@ -434,6 +434,15 @@ f6 ph3 pv1 br2 dib tc ttu mv3 bg-primary-color white hover-bg-green link +
  • + + 使用 Jenkins + Ansible 实现 Spring Boot 自动化部署101 + +
  • + + + +
  • 从 Jenkins 到 Jenkins X diff --git a/wechat/articles/2019/04/2019-04-12-what-is-cicd/index.html b/wechat/articles/2019/04/2019-04-12-what-is-cicd/index.html index 1939f6a9d0c4be310f65e04bc616d98bee06b2f2..9141064948c866cc61d4a86f53decd75f4467597 100644 --- a/wechat/articles/2019/04/2019-04-12-what-is-cicd/index.html +++ b/wechat/articles/2019/04/2019-04-12-what-is-cicd/index.html @@ -440,8 +440,8 @@ f6 ph3 pv1 br2 dib tc ttu mv3 bg-primary-color white hover-bg-green link
  • - - 从 Jenkins 到 Jenkins X + + 基于 Jenkins + JaCoCo 实现功能测试代码覆盖率统计
  • @@ -452,6 +452,15 @@ f6 ph3 pv1 br2 dib tc ttu mv3 bg-primary-color white hover-bg-green link +
  • + + 从 Jenkins 到 Jenkins X + +
  • + + + +
  • 与云无关的用于 Kubernetes 的自动化 CI/CD diff --git a/wechat/articles/2019/04/2019-04-15-zabbix-monitor-jenkins/index.html b/wechat/articles/2019/04/2019-04-15-zabbix-monitor-jenkins/index.html index 558d66c8c2bfedeed96348691d00028532154b4c..d3f38ea4e0d6cfbd4cce1dde45daad716c588c08 100644 --- a/wechat/articles/2019/04/2019-04-15-zabbix-monitor-jenkins/index.html +++ b/wechat/articles/2019/04/2019-04-15-zabbix-monitor-jenkins/index.html @@ -511,8 +511,8 @@ f6 ph3 pv1 br2 dib tc ttu mv3 bg-primary-color white hover-bg-green link
  • - - 使用 Jenkins + Ansible 实现 Spring Boot 自动化部署101 + + 基于 Jenkins + JaCoCo 实现功能测试代码覆盖率统计
  • @@ -523,6 +523,15 @@ f6 ph3 pv1 br2 dib tc ttu mv3 bg-primary-color white hover-bg-green link +
  • + + 使用 Jenkins + Ansible 实现 Spring Boot 自动化部署101 + +
  • + + + +
  • 从 Jenkins 到 Jenkins X diff --git a/wechat/articles/2019/04/2019-04-23-jenkins-master-shared-home/index.html b/wechat/articles/2019/04/2019-04-23-jenkins-master-shared-home/index.html index fb6357dd3d334e31c31848135f9c7ef0589580d2..b9189dde927041caba307fe9db3290d30635a6c4 100644 --- a/wechat/articles/2019/04/2019-04-23-jenkins-master-shared-home/index.html +++ b/wechat/articles/2019/04/2019-04-23-jenkins-master-shared-home/index.html @@ -436,8 +436,8 @@ f6 ph3 pv1 br2 dib tc ttu mv3 bg-primary-color white hover-bg-green link
  • - - 使用 Jenkins + Ansible 实现 Spring Boot 自动化部署101 + + 基于 Jenkins + JaCoCo 实现功能测试代码覆盖率统计
  • @@ -448,6 +448,15 @@ f6 ph3 pv1 br2 dib tc ttu mv3 bg-primary-color white hover-bg-green link +
  • + + 使用 Jenkins + Ansible 实现 Spring Boot 自动化部署101 + +
  • + + + +
  • 从 Jenkins 到 Jenkins X diff --git a/wechat/articles/2019/04/2019-04-25-jenkins-ansible-nginx/index.html b/wechat/articles/2019/04/2019-04-25-jenkins-ansible-nginx/index.html index 50c269034b5f60fd85148d2d37f3eae01d2ccdb1..29d6e019c0f43e45f6ac7a60c48f4acd1f16c272 100644 --- a/wechat/articles/2019/04/2019-04-25-jenkins-ansible-nginx/index.html +++ b/wechat/articles/2019/04/2019-04-25-jenkins-ansible-nginx/index.html @@ -580,8 +580,8 @@ f6 ph3 pv1 br2 dib tc ttu mv3 bg-primary-color white hover-bg-green link
  • - - 使用 Jenkins + Ansible 实现 Spring Boot 自动化部署101 + + 基于 Jenkins + JaCoCo 实现功能测试代码覆盖率统计
  • @@ -592,6 +592,15 @@ f6 ph3 pv1 br2 dib tc ttu mv3 bg-primary-color white hover-bg-green link +
  • + + 使用 Jenkins + Ansible 实现 Spring Boot 自动化部署101 + +
  • + + + +
  • 从 Jenkins 到 Jenkins X diff --git a/wechat/articles/2019/04/2019-04-29-progressive-delivery-with-jenkins-x-automatic-cana/index.html b/wechat/articles/2019/04/2019-04-29-progressive-delivery-with-jenkins-x-automatic-cana/index.html index be92f20a3ba1f528ae418514c5fed3c16d201bee..2fa3a7810ee3f7be349d6fc817860b8ba8d54e73 100644 --- a/wechat/articles/2019/04/2019-04-29-progressive-delivery-with-jenkins-x-automatic-cana/index.html +++ b/wechat/articles/2019/04/2019-04-29-progressive-delivery-with-jenkins-x-automatic-cana/index.html @@ -430,8 +430,8 @@ f6 ph3 pv1 br2 dib tc ttu mv3 bg-primary-color white hover-bg-green link
  • - - 使用 Jenkins + Ansible 实现 Spring Boot 自动化部署101 + + 基于 Jenkins + JaCoCo 实现功能测试代码覆盖率统计
  • @@ -442,6 +442,15 @@ f6 ph3 pv1 br2 dib tc ttu mv3 bg-primary-color white hover-bg-green link +
  • + + 使用 Jenkins + Ansible 实现 Spring Boot 自动化部署101 + +
  • + + + +
  • 从 Jenkins 到 Jenkins X diff --git a/wechat/articles/2019/04/2019-04-30-what-cicd-tool-should-i-use/index.html b/wechat/articles/2019/04/2019-04-30-what-cicd-tool-should-i-use/index.html index 8aaf56b39947b5445b18306c74d9266d3efa7022..5ec22fbb1512bf81064fc7478f8b34d28dc46a41 100644 --- a/wechat/articles/2019/04/2019-04-30-what-cicd-tool-should-i-use/index.html +++ b/wechat/articles/2019/04/2019-04-30-what-cicd-tool-should-i-use/index.html @@ -427,8 +427,8 @@ f6 ph3 pv1 br2 dib tc ttu mv3 bg-primary-color white hover-bg-green link
  • - - 从 Jenkins 到 Jenkins X + + 基于 Jenkins + JaCoCo 实现功能测试代码覆盖率统计
  • @@ -439,6 +439,15 @@ f6 ph3 pv1 br2 dib tc ttu mv3 bg-primary-color white hover-bg-green link +
  • + + 从 Jenkins 到 Jenkins X + +
  • + + + +
  • 与云无关的用于 Kubernetes 的自动化 CI/CD diff --git a/wechat/articles/2019/05/2019-05-06-jenkins-plugin-develop-within-two-days-part01/index.html b/wechat/articles/2019/05/2019-05-06-jenkins-plugin-develop-within-two-days-part01/index.html index 9ee57cb45d7a4192dfd08447d8a59bf0280a5a6b..0c28ce84abcbe58427a5e59bcfb3a52234afded4 100644 --- a/wechat/articles/2019/05/2019-05-06-jenkins-plugin-develop-within-two-days-part01/index.html +++ b/wechat/articles/2019/05/2019-05-06-jenkins-plugin-develop-within-two-days-part01/index.html @@ -604,8 +604,8 @@ f6 ph3 pv1 br2 dib tc ttu mv3 bg-primary-color white hover-bg-green link
  • - - 使用 Jenkins + Ansible 实现 Spring Boot 自动化部署101 + + 基于 Jenkins + JaCoCo 实现功能测试代码覆盖率统计
  • @@ -616,6 +616,15 @@ f6 ph3 pv1 br2 dib tc ttu mv3 bg-primary-color white hover-bg-green link +
  • + + 使用 Jenkins + Ansible 实现 Spring Boot 自动化部署101 + +
  • + + + +
  • 从 Jenkins 到 Jenkins X diff --git a/wechat/articles/2019/05/2019-05-07-jenkins-install-plugins-shell/index.html b/wechat/articles/2019/05/2019-05-07-jenkins-install-plugins-shell/index.html index 39f1e2f059eae08d38060f88ded3a37eb89d509c..5b8190c6e0035a0bc6cb85ae3cde0a327d359611 100644 --- a/wechat/articles/2019/05/2019-05-07-jenkins-install-plugins-shell/index.html +++ b/wechat/articles/2019/05/2019-05-07-jenkins-install-plugins-shell/index.html @@ -398,8 +398,8 @@ f6 ph3 pv1 br2 dib tc ttu mv3 bg-primary-color white hover-bg-green link
  • - - 使用 Jenkins + Ansible 实现 Spring Boot 自动化部署101 + + 基于 Jenkins + JaCoCo 实现功能测试代码覆盖率统计
  • @@ -410,6 +410,15 @@ f6 ph3 pv1 br2 dib tc ttu mv3 bg-primary-color white hover-bg-green link +
  • + + 使用 Jenkins + Ansible 实现 Spring Boot 自动化部署101 + +
  • + + + +
  • 从 Jenkins 到 Jenkins X diff --git a/wechat/articles/2019/05/2019-05-08-jenkins-plugin-develop-within-two-days-part02/index.html b/wechat/articles/2019/05/2019-05-08-jenkins-plugin-develop-within-two-days-part02/index.html index b3bb91ef5fcbe49590ca104a9fbd6624a5758e2a..a4b0e74dbcb4719d34797aa592166f3e0b52cac6 100644 --- a/wechat/articles/2019/05/2019-05-08-jenkins-plugin-develop-within-two-days-part02/index.html +++ b/wechat/articles/2019/05/2019-05-08-jenkins-plugin-develop-within-two-days-part02/index.html @@ -623,8 +623,8 @@ f6 ph3 pv1 br2 dib tc ttu mv3 bg-primary-color white hover-bg-green link
  • - - 使用 Jenkins + Ansible 实现 Spring Boot 自动化部署101 + + 基于 Jenkins + JaCoCo 实现功能测试代码覆盖率统计
  • @@ -635,6 +635,15 @@ f6 ph3 pv1 br2 dib tc ttu mv3 bg-primary-color white hover-bg-green link +
  • + + 使用 Jenkins + Ansible 实现 Spring Boot 自动化部署101 + +
  • + + + +
  • 从 Jenkins 到 Jenkins X diff --git a/wechat/articles/2019/05/2019-05-09-jenkins-release/index.html b/wechat/articles/2019/05/2019-05-09-jenkins-release/index.html index 7f25cd559b58eef9bc389cbf85092cb187bc24ae..473d27b1a7c7666e30d9c7d1c58e0c27e15ea493 100644 --- a/wechat/articles/2019/05/2019-05-09-jenkins-release/index.html +++ b/wechat/articles/2019/05/2019-05-09-jenkins-release/index.html @@ -353,8 +353,8 @@ f6 ph3 pv1 br2 dib tc ttu mv3 bg-primary-color white hover-bg-green link
  • - - 使用 Jenkins + Ansible 实现 Spring Boot 自动化部署101 + + 基于 Jenkins + JaCoCo 实现功能测试代码覆盖率统计
  • @@ -365,6 +365,15 @@ f6 ph3 pv1 br2 dib tc ttu mv3 bg-primary-color white hover-bg-green link +
  • + + 使用 Jenkins + Ansible 实现 Spring Boot 自动化部署101 + +
  • + + + +
  • 从 Jenkins 到 Jenkins X diff --git a/wechat/articles/2019/05/2019-05-13-jenkins-book-gift/index.html b/wechat/articles/2019/05/2019-05-13-jenkins-book-gift/index.html index 32eba90a471ee41e7350aac31d35920cb172ac86..596e435814a2975d1aff63054002afb567cae125 100644 --- a/wechat/articles/2019/05/2019-05-13-jenkins-book-gift/index.html +++ b/wechat/articles/2019/05/2019-05-13-jenkins-book-gift/index.html @@ -349,8 +349,8 @@ f6 ph3 pv1 br2 dib tc ttu mv3 bg-primary-color white hover-bg-green link
  • - - 使用 Jenkins + Ansible 实现 Spring Boot 自动化部署101 + + 基于 Jenkins + JaCoCo 实现功能测试代码覆盖率统计
  • @@ -361,6 +361,15 @@ f6 ph3 pv1 br2 dib tc ttu mv3 bg-primary-color white hover-bg-green link +
  • + + 使用 Jenkins + Ansible 实现 Spring Boot 自动化部署101 + +
  • + + + +
  • 从 Jenkins 到 Jenkins X diff --git a/wechat/articles/2019/05/2019-05-14-devops-jenkins-credential-manage/index.html b/wechat/articles/2019/05/2019-05-14-devops-jenkins-credential-manage/index.html index 027a7dd3c6236c1b55876239f37e141856001621..009db374c412f64b194e700bbd398e76cb1581a3 100644 --- a/wechat/articles/2019/05/2019-05-14-devops-jenkins-credential-manage/index.html +++ b/wechat/articles/2019/05/2019-05-14-devops-jenkins-credential-manage/index.html @@ -421,8 +421,8 @@ f6 ph3 pv1 br2 dib tc ttu mv3 bg-primary-color white hover-bg-green link
  • - - 使用 Jenkins + Ansible 实现 Spring Boot 自动化部署101 + + 基于 Jenkins + JaCoCo 实现功能测试代码覆盖率统计
  • @@ -433,6 +433,15 @@ f6 ph3 pv1 br2 dib tc ttu mv3 bg-primary-color white hover-bg-green link +
  • + + 使用 Jenkins + Ansible 实现 Spring Boot 自动化部署101 + +
  • + + + +
  • 从 Jenkins 到 Jenkins X diff --git a/wechat/articles/2019/05/2019-05-15-gsoc-annoncement/index.html b/wechat/articles/2019/05/2019-05-15-gsoc-annoncement/index.html index 22837423eb9fad00dea576458bbcb5a7ebc66599..d697410975a1430521e1c54a6d4a0a6475aa8522 100644 --- a/wechat/articles/2019/05/2019-05-15-gsoc-annoncement/index.html +++ b/wechat/articles/2019/05/2019-05-15-gsoc-annoncement/index.html @@ -365,8 +365,8 @@ f6 ph3 pv1 br2 dib tc ttu mv3 bg-primary-color white hover-bg-green link
  • - - 使用 Jenkins + Ansible 实现 Spring Boot 自动化部署101 + + 基于 Jenkins + JaCoCo 实现功能测试代码覆盖率统计
  • @@ -377,6 +377,15 @@ f6 ph3 pv1 br2 dib tc ttu mv3 bg-primary-color white hover-bg-green link +
  • + + 使用 Jenkins + Ansible 实现 Spring Boot 自动化部署101 + +
  • + + + +
  • 从 Jenkins 到 Jenkins X diff --git a/wechat/articles/2019/05/2019-05-17-from-jenkins-to-jenkins-x/index.html b/wechat/articles/2019/05/2019-05-17-from-jenkins-to-jenkins-x/index.html index 79c97e8c5a97b99d9596e5ff574dbda9b66058fe..fe7d680bc8f07f2ed19a6f632bb6b056ea410282 100644 --- a/wechat/articles/2019/05/2019-05-17-from-jenkins-to-jenkins-x/index.html +++ b/wechat/articles/2019/05/2019-05-17-from-jenkins-to-jenkins-x/index.html @@ -557,8 +557,8 @@ f6 ph3 pv1 br2 dib tc ttu mv3 bg-primary-color white hover-bg-green link
  • - - 使用 Jenkins + Ansible 实现 Spring Boot 自动化部署101 + + 基于 Jenkins + JaCoCo 实现功能测试代码覆盖率统计
  • @@ -569,6 +569,15 @@ f6 ph3 pv1 br2 dib tc ttu mv3 bg-primary-color white hover-bg-green link +
  • + + 使用 Jenkins + Ansible 实现 Spring Boot 自动化部署101 + +
  • + + + + diff --git a/wechat/articles/2019/05/2019-05-20-jenkins-ansible-springboot/index.html b/wechat/articles/2019/05/2019-05-20-jenkins-ansible-springboot/index.html index ce1ab0f0b2615571df1dbbd77dc469de1931f556..7e89de28d715f58713ab76830f87fe86b4b192e3 100644 --- a/wechat/articles/2019/05/2019-05-20-jenkins-ansible-springboot/index.html +++ b/wechat/articles/2019/05/2019-05-20-jenkins-ansible-springboot/index.html @@ -235,6 +235,14 @@ var trackOutboundLink = function(id, url) { + + + + + + + + @@ -563,6 +571,12 @@ f6 ph3 pv1 br2 dib tc ttu mv3 bg-primary-color white hover-bg-green link +
  • + + 基于 Jenkins + JaCoCo 实现功能测试代码覆盖率统计 + +
  • +
  • @@ -570,6 +584,9 @@ f6 ph3 pv1 br2 dib tc ttu mv3 bg-primary-color white hover-bg-green link
  • + + +
  • 从 Jenkins 到 Jenkins X diff --git a/wechat/articles/2019/05/2019-05-22-jacoco-coverage-for-functional-test/coverage-summary.png b/wechat/articles/2019/05/2019-05-22-jacoco-coverage-for-functional-test/coverage-summary.png new file mode 100644 index 0000000000000000000000000000000000000000..734097ae0fa0f4c8b3228e639eff0aa80feb9085 Binary files /dev/null and b/wechat/articles/2019/05/2019-05-22-jacoco-coverage-for-functional-test/coverage-summary.png differ diff --git a/wechat/articles/2019/05/2019-05-22-jacoco-coverage-for-functional-test/hangzhou.jpg b/wechat/articles/2019/05/2019-05-22-jacoco-coverage-for-functional-test/hangzhou.jpg new file mode 100644 index 0000000000000000000000000000000000000000..e11e7fe02aa2b2063c608db649a7769b696a0c10 Binary files /dev/null and b/wechat/articles/2019/05/2019-05-22-jacoco-coverage-for-functional-test/hangzhou.jpg differ diff --git a/wechat/articles/2019/05/2019-05-22-jacoco-coverage-for-functional-test/index.html b/wechat/articles/2019/05/2019-05-22-jacoco-coverage-for-functional-test/index.html new file mode 100644 index 0000000000000000000000000000000000000000..2b40a559e6dcf495d3c277b06be2f398fd19bfdd --- /dev/null +++ b/wechat/articles/2019/05/2019-05-22-jacoco-coverage-for-functional-test/index.html @@ -0,0 +1,822 @@ + + + + + + + + + + + + 基于 Jenkins + JaCoCo 实现功能测试代码覆盖率统计 | Jenkins 中文社区 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + +
    +
    +
    + + +
    + + + + + + + +
    + + + + +
    +
    + +
    +
    +
    + + + + “基于 Jenkins + JaCoCo 实现功能测试代码覆盖率统计” + 更新于:May 22, 2019 +
    + 原文作者:donhui +
    +
    + + 改善此页 + + + + + + + +
    + +
    + + +
    +
    +
    + +
    + + + + + + + + + + + + + + + + diff --git a/wechat/index.html b/wechat/index.html index f7c25747f6d9303cd954dbe7e96d59fa128125b9..caa22eccf0eb2a3c72e5c41fedfc9d3ee9a78599 100644 --- a/wechat/index.html +++ b/wechat/index.html @@ -35,7 +35,7 @@ - + @@ -185,6 +185,33 @@ var trackOutboundLink = function(id, url) {
    +

    + 基于 Jenkins + JaCoCo 实现功能测试代码覆盖率统计 +

    + + + + +
    +
  • + + + + +
    + +
    + +

    使用 Jenkins + Ansible 实现 Spring Boot 自动化部署101

    @@ -422,33 +449,6 @@ var trackOutboundLink = function(id, url) { - -
    - -
    - - -

    - Jenkins 插件开发之旅:两天内从 idea 到发布(下篇) -

    - - - - -
    -
    - - -
    diff --git a/wechat/index.xml b/wechat/index.xml index e0ecf6b3010d8243ea9b936708ad83132bff5f9b..b4e12423d6d46aabd0141fdccc0ca93ff3012c39 100644 --- a/wechat/index.xml +++ b/wechat/index.xml @@ -6,11 +6,25 @@ Recent content in Wechats on Jenkins 中文社区 Hugo -- gohugo.io zh-CN - Mon, 20 May 2019 00:00:00 +0000 + Wed, 22 May 2019 00:00:00 +0000 + + 基于 Jenkins + JaCoCo 实现功能测试代码覆盖率统计 + https://jenkins-zh.cn/wechat/articles/2019/05/2019-05-22-jacoco-coverage-for-functional-test/ + Wed, 22 May 2019 00:00:00 +0000 + + https://jenkins-zh.cn/wechat/articles/2019/05/2019-05-22-jacoco-coverage-for-functional-test/ + 使用 JaCoCo 统计功能测试代码覆盖率? 对于 JaCoCo,有所了解但又不是很熟悉。 “有所了解”指的是在 CI 实践中已经使用 JaCoCo 对单元测试代码覆盖率统计: 当代码 push 到代码仓库后,用 JaCoCo 进行单元测试代码覆盖率统计,并将相应数据推送到 SonarQube。 “不是很熟”指的是应用场景也仅限于此,并未进行过多研究与实践。 +前不久,有测试同事提出,想要在实际测试时,用 JaCoCo 统计功能测试代码覆盖率。 其主要目的是在经过功能测试后,通过查看代码覆盖率统计的相关指标,增强对软件质量的信心。 经查阅资料,证明这是可行的。 +由于对 JaCoCo 不甚了解,于是查阅官网资料对 JaCoCo 进一步了解。 +进一步了解 JaCoCo JaCoCo,即 Java Code Coverage,是一款开源的 Java 代码覆盖率统计工具。 它由 EclEmma 团队根据多年来使用和集成现有库的经验教训而创建。 +JaCoCo 愿景 JaCoCo 应该为基于 Java VM 的环境中的代码覆盖率分析提供标准技术。 重点是提供一个轻量级的、灵活的、文档良好的库,以便与各种构建和开发工具集成。 +JaCoCo 产品功能 指令(C0)、分支(C1)、行、方法、类型和圈复杂度的覆盖率分析。 基于 Java 字节码,因此也可以在没有源文件的情况下工作。 通过基于 Java agent 的实时检测进行简单集成。其他集成场景(如自定义类加载器)也可以通过 API 实现。 框架无关性:平稳地与基于 Java VM 的应用程序集成,比如普通 Java 程序、OSGi 框架、web 容器或 EJB 服务器。 兼容所有已发布的 Java 类文件版本。 支持不同的 JVM 语言。 支持几种报告格式( HTML、XML、CSV )。 远程协议和 JMX 控件,以便在任何时间点从覆盖率 agent 请求执行数据 dump 。 Ant 任务,用于收集和管理执行数据并创建结构化覆盖报告。 Maven 插件,用于收集覆盖信息并在Maven构建中创建报告。 非功能特性 使用简单和与现有构建脚本和工具集成。 良好的性能和最小的运行时开销,特别是对大型项目。 轻量级实现,对外部库和系统资源的依赖性最小。 全面的文档。 完整文档化的 API ( JavaDoc ) 和用于与其他工具集成的示例。 回归测试基于 JUnit 测试用例,具有完整的功能测试覆盖率。 对 JaCoCo 可以与现有构建脚本和工具进行集成这里做进一步说明: 官方提供了 Java API、Java Agent 、CLI、Ant 、Maven、Eclipse 这几种集成方式; 第三方提供了诸如与 Gradle、IDEA、Jenkins 等其它工具的集成方式。 + + 使用 Jenkins + Ansible 实现 Spring Boot 自动化部署101 https://jenkins-zh.cn/wechat/articles/2019/05/2019-05-20-jenkins-ansible-springboot/ diff --git a/wechat/page/2/index.html b/wechat/page/2/index.html index d65ba48473961c4c7c50715f60aca2929f9453bb..8e2358d8c20ac45de64550f233bd23ca1fcf2d31 100644 --- a/wechat/page/2/index.html +++ b/wechat/page/2/index.html @@ -35,7 +35,7 @@ - + @@ -185,6 +185,33 @@ var trackOutboundLink = function(id, url) {
    +

    + Jenkins 插件开发之旅:两天内从 idea 到发布(下篇) +

    + + + + +
    +
    + + + + +
    + +
    + +

    Jenkins 自动化安装插件

    @@ -422,33 +449,6 @@ var trackOutboundLink = function(id, url) { - -
    - -
    - - -

    - Jenkins 2.173 发布通知 -

    - - - - -
    -
    - - -
    diff --git a/wechat/page/3/index.html b/wechat/page/3/index.html index 8f53127543d1248b259ec5fbf4374adef741fb60..56176eedf8738eb20bd092e2fa76219fa3eee688 100644 --- a/wechat/page/3/index.html +++ b/wechat/page/3/index.html @@ -35,7 +35,7 @@ - + @@ -185,6 +185,33 @@ var trackOutboundLink = function(id, url) {
    +

    + Jenkins 2.173 发布通知 +

    + + + + +
    +
    + + + + +
    + +
    + +

    持续交付的商业价值

    @@ -422,33 +449,6 @@ var trackOutboundLink = function(id, url) { - -
    - -
    - - -

    - Electron 应用的流水线设计 -

    - - - - -
    -
    - - -
    diff --git a/wechat/page/4/index.html b/wechat/page/4/index.html index d7f0afa2c1e675de039e537a641daf13c29b09f5..601f6458113721b8c0781db90b3128596ae6b642 100644 --- a/wechat/page/4/index.html +++ b/wechat/page/4/index.html @@ -185,6 +185,33 @@ var trackOutboundLink = function(id, url) {
    +

    + Electron 应用的流水线设计 +

    + + + + +
    +
    + + + + +
    + +
    + +

    Jenkins 已经被 Google Summer Of Code 2019 接受!

    @@ -427,38 +454,6 @@ TODO List Pick up a task from here, if you’re interesting in contribution. - -
    - -
    - - -

    - -

    - - - - -
    -
    - - -
    diff --git a/wechat/page/5/index.html b/wechat/page/5/index.html index 88656651325917002fe5de0e063bcaf56500fa89..a79a7dd77e8645690c3fdb9ba18f545a5ae6db1b 100644 --- a/wechat/page/5/index.html +++ b/wechat/page/5/index.html @@ -184,6 +184,38 @@ var trackOutboundLink = function(id, url) {
    +

    + +

    + + + + +
    +
    + + + + +
    + +
    + +

    @@ -437,33 +469,6 @@ wechat: wechatid github: linuxsuren terms: - 2018-11-11 根据微信公众号 - -
    - -
    - - -

    - Jenkins Configuration-as-Code: 看,我都不用手动配置 -

    - - - - -
    -
    - - -
    diff --git a/wechat/page/6/index.html b/wechat/page/6/index.html index 443bbe7d8d3dcb09383a5d41a8245c939b073e44..478f3bf26e3a5394cf38d5dc1a32ea99bd8db4f8 100644 --- a/wechat/page/6/index.html +++ b/wechat/page/6/index.html @@ -184,6 +184,33 @@ var trackOutboundLink = function(id, url) {
    +

    + Jenkins Configuration-as-Code: 看,我都不用手动配置 +

    + + + + +
    +
    + + + + +
    + +
    + +

    Jenkins 中文社区邀您来上海共同参与2019年的国际开源盛宴

    @@ -426,33 +453,6 @@ Jenkins 中文社区邀您参与社区共同成长 在开源盛会开展的同 - -
    - -
    - - -

    - 回顾 2018: 革新的一年 -

    - - - - -
    -
    - - -
    diff --git a/wechat/page/7/index.html b/wechat/page/7/index.html index aa32f8ff801396b772dd6549aeb850554e67c18e..4a470911add3f283a876028f48f98c4aea9877a0 100644 --- a/wechat/page/7/index.html +++ b/wechat/page/7/index.html @@ -184,6 +184,33 @@ var trackOutboundLink = function(id, url) {
    +

    + 回顾 2018: 革新的一年 +

    + + + + +
    +
    + + + + +