原创|使用教程|编辑:郑恭琳|2020-06-15 11:55:07.280|阅读 562 次
概述:
# 界面/图表报表/文档/IDE等千款热门软控件火热销售中 >>
相关链接:
如何使用Parasoft C/C++test创建容器映像
这篇文章的第1部分讨论了使用容器部署嵌入式开发工具链的好处。它展示了如何配置Parasoft C/C++test Professional以使其与在容器中部署的编译工具链和测试执行环境一起使用。
现在,让我们看一下使用Parasoft C/C++test Standard创建容器图像。我将演示一个包含容器内静态分析执行的简单示例。
作为基于命令行的工具,Parasoft C/C++test标准适用于容器内部署。它可以与编译器打包在一起,并将系统构建到一个容器映像中,并用于CI/CD,并部署到开发人员的桌面以进行本地命令行扫描。下图显示了此设置的高级概述:
该图显示Jenkins使用容器化的C/C++test运行静态分析。在此特定设置中,Parasoft C/C++test,编译工具链和构建工具部署在该图右上角所示的容器中。
右下方它下方的容器提供了执行环境,执行运行时测试(例如单元测试或自动系统级测试)可能需要执行环境。
如果我们打算仅执行静态分析,则我们的设置很可能仅包含带有编译工具链和Parasoft C/C++test的一种容器。
如果尚未安装,请安装最新版的Parasoft C/C++test 2020.1 for Linux。
为了简化使用C/C++test创建容器映像的过程,最新版本附带了一个Dockerfile示例。您可以在以下位置找到该Dockerfile:
/integration/docker/Dockerfile
这个简单的Dockerfile仅关注构建映像所需的C/C++test步骤。在大多数实际情况下,您需要将此文件与Dockerfile合并。
在分析示例Dockerfile中的内容之前,让我们看看它是如何工作的。我的示例假定以下简单文件结构:
$HOME/sandbox/parasoft_cpptest_standard-2020.1.0-linux.x86_64.tar.gz
1.解压缩C/C++test发行版。
2.从发行版中复制示例Dockerfile
3.使用有关许可证的信息为C/C++test准备属性文件。我们将使用默认的cpptestcli.properties文件作为基础,因此我们将其复制到我们的工作目录中:
编辑它以插入有关您的许可证服务器位置的信息。使用您喜欢的编辑器来配置许可信息。完成后保存文件。
4.编辑Dockerfile,并取消注释行号13(将cpptestcli.properties文件从本地目录复制到容器中位置的行)。Dockerfile中的行应如下所示:
5.现在,我们准备创建Docker映像。运行命令以使用C/C++test构建第一个映像。图像名称为“cpptest_ci_image”。
Docker将花费一些时间来分析其缓存并下载所需的基本映像。完成此操作后,将复制C/C++test发行版并将其安装到映像中。一两分钟后,图像应准备就绪。 通过执行命令以列出所有图像来确认它:
在输出中,您应该看到顶部列出了“cpptest_ci_image”。太好了,因此我们已经建立了图像并准备就绪。现在该进行测试了!
为了进行简单测试,请使用Dockerfile中提供的帮助程序/示例命令行之一。
使用您喜欢的编辑器打开Dockerfile,然后向下滚动到文件底部。您应该看到几个示例命令行,如下所示:
让我们使用第26行中的命令行在该发行版随附的C/C++test示例之一上执行容器内静态分析。
由于我们决定使用许可信息将cpptestcli.properties文件构建到容器中,因此我们可以简化命令行并删除-settings选项。测试的命令行应如下所示:
瞧!静态分析是在容器中执行的。结果在控制台上报告。
我们可以进一步配置该工具以在本地文件系统上生成HTML报告,但这是另一回事。我们的主要目标是创建内部带有C/C++test的容器,并将其配置为执行静态分析。我们实现了目标。
如果您需要在流程中设置带有静态分析的CI服务器,则您的任务会简单得多。只需访问容器。如果您团队中的开发人员想要运行静态分析,则情况也是如此。
是否需要将Parasoft C/C++test升级到最新版本?只需下载发行版,重建您的容器映像,即可完成!团队和自动化基础设施甚至都不会注意到此操作。如有必要,可平滑,轻松且可逆。
在结束之前,让我们看一下用于创建映像的Parasoft C/C++test附带的Dockerfile的内容。下图显示了
详细信息如下:
这就是使用Parasoft C/C++test创建一个简单容器即可执行静态分析所需的一切。
正如我提到的,这是一个简单的Dockerfile。它已添加到分发中,以为您提供一个示例,说明您可能需要为环境创建容器映像。您将需要对其进行调整,或者将其与现有的Dockerfile合并。
本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@evget.com