一种自动化软件代码检测方法与流程

文档序号:11407035阅读:292来源:国知局

本发明涉及一种代码的检测方法,具体是指一种自动化软件代码检测方法。



背景技术:

现有技术中的代码检测方案都是由人工来操作代码审查工具的,并通过人为的操作来检索代码库并人为的去查看代码中的错误的内容和不规范的内容。该代码检测方案强调了人为的主动性,但却忽视了自动化构建触发。

现有的代码检测方案忽视了代码检测的持续性,同时也没有提供相应的审查结果的汇总报告展示。若一个项目有很多工程以及很多代码版本分支,现有的方案大多需要人为的多次操作审查工具,并手动汇集显示审查的结果,如此便会消耗大量的开发人力以及时间资源,大大加重了企业的负担,不利于提高企业的发展。



技术实现要素:

本发明的目的在于克服上述问题,提供一种自动化软件代码检测方法,能够合理的利用的服务器资源,每天能够自行定时完成检测的过程,无需工作人员再去手动的检测,大大提高了人力资源的利用率。

本发明的目的通过下述技术方案实现:

一种自动化软件代码检测方法,包括以下步骤:

(1)代码数据的编写与存储,根据相应的project及其release编写代码并通过gitlab服务器接收该代码的数据,并记录与代码对应的project、release以及commitid;

(2)通过jenkins平台对代码数据进行预处理,并根据预处理的结果选择结束本次检测或者进入步骤(3);

(3)对代码进行检测;

(4)对代码的检测结果进行反馈。

步骤(2)中预处理的具体步骤为:

(21)常启的jenkins平台通过gitlab服务器的接口遍历gitlab服务器中所有project及其所有release的代码,并获取每个代码最后一次提交的commitid;

(22)jenkins平台将每个最后一次提交的代码的commitid与该jenkins平台在本地存放的data文本库中对应代码的commitid进行对比;

(23)若所有最后提交的代码的commitid均与该jenkins平台在本地存放的data文本库中对应代码的commitid一致,则结束本次检测;若有最后提交的代码的commitid与该jenkins平台在本地存放的data文本库中对应代码的commitid不一致,则将所有不一致的代码的commitid覆盖到本地存放的data文本库中,并将所有不一致的代码的project及其release保存在trigger-list.txt文档中,并进入步骤(3)。

步骤(3)中检测的具体步骤为:

(31)jenkins平台启动sonar工具并读取trigger-list.txt文档,从而获取该trigger-list.txt文档中记录的相应project及其release的代码,依次执行带sonar工具插件的单元测试,完成代码静态检测任务构建;

(32)将相应project及其release的代码的检测数据上传至sonar服务器中。

步骤(4)中,jenkins平台通过sonar工具的接口读取步骤(32)中相应project及其release的代码的检测数据,并将所有的代码的检测数据进行汇总与展示,进而完成了代码的检测结果的反馈。

本发明与现有技术相比,具有以下优点及有益效果:

(1)本发明拥有高扩展性,能够直接接入单元测试的测试用例并在一次构建中执行,无二次开发成本。

(2)本发明能够每天晚上或凌晨在服务器的空余时间自行的完成相应的检测过程,合理的利用的服务器资源,降低了服务器资源的浪费,也很好的避免检测过程与工作人员的工作发生冲突。

(3)本发明拥有高度的自动化,每天能够自行定时完成检测的过程,无需工作人员再去手动的检测,大大提高了人力资源的利用率,降低了工作人员的工作量,大大提高了工作人员的工作效率以及对时间的利用率。

具体实施方式

下面结合实施例对本发明作进一步的详细说明,但本发明的实施方式不限于此。

实施例1

一种自动化软件代码检测方法,包括以下步骤:

(1)代码数据的编写与存储,根据相应的project及其release编写代码并通过gitlab服务器接收该代码的数据,并记录与代码对应的project、release以及commitid。

该代码的编写工作主要由相关的工作人员在工作日的白天完成,而完成编写后的代码则由完成的工作人员上传到专门用于存放代码的gitlab服务器中进行保存。

(2)通过jenkins平台对代码数据进行预处理,并根据预处理的结果选择结束本次检测或者进入步骤(3);

其具体的步骤为:

(21)常启的jenkins平台通过gitlab服务器的接口遍历gitlab服务器中所有project及其所有release的代码,并获取每个代码最后一次提交的commitid;

(22)jenkins平台将每个最后一次提交的代码的commitid与该jenkins平台在本地存放的data文本库中对应代码的commitid进行对比;

(23)若所有最后提交的代码的commitid均与该jenkins平台在本地存放的data文本库中对应代码的commitid一致,则结束本次检测;若有最后提交的代码的commitid与该jenkins平台在本地存放的data文本库中对应代码的commitid不一致,则将所有不一致的代码的commitid覆盖到本地存放的data文本库中,并将所有不一致的代码的project及其release保存在trigger-list.txt文档中,并进入步骤(3);

(3)对代码进行检测:

(31)jenkins平台启动sonar工具并读取trigger-list.txt文档,从而获取该trigger-list.txt文档中记录的相应project及其release的代码,依次执行带sonar工具插件的单元测试,完成代码静态检测任务构建;

(32)将相应project及其release的代码的检测数据上传至sonar服务器中。

(4)对代码的检测结果进行反馈:

jenkins平台通过sonar工具的接口读取步骤(32)中相应project及其release的代码的检测数据,并将所有的代码的检测数据进行汇总与展示,进而完成了代码的检测结果的反馈。

为了提高使用效果,jenkins平台还可以根据实际的展示情况将相应的结果反馈到相应的工作人员的计算机中,很好的避免了工作人员自行查阅展示结果的过程,进一步提高了工作人员的工作效率。

步骤(2)、(3)和(4)主要由jenkins平台在夜晚或凌晨完成,很好的与代码的编写交错开来,以更加充分的利用时间。如此便能很好的避免在工作人员正常工作时jenkins平台占用服务器资源,提高了服务器的利用率,同时还更好的降低了企业的成本。

如上所述,便可很好的实现本发明。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1