Predictive Cloud Computing 项目 Maven、单元和集成测试,以及静态代码分析-1
- UID
- 1066743
|
Predictive Cloud Computing 项目 Maven、单元和集成测试,以及静态代码分析-1
整个 Predictive Cloud Computing (PCC) 项目中利用了一些构建工具和技术,使开发团队能够自动构建和验证更改。所选的工具和技术使团队能自动化构建流程,而且在部署更改时非常自信它们会正常运行且容易维护。在本文中,我们将讨论 PCC 中使用的构建和测试方法。图 1 演示了 PCC 构建和测试架构。
图 1.构建和测试架构Maven 构建自动化构建自动化实践涉及到删除构建过程中耗时且容易出错的手动步骤,将它们替换为利用源代码创建工件的自动化的一致流程。构建自动化工具通过卸载并自动化构建流程,促进细微更改的测试和传播。PCC 使用 Maven 作为其构建自动化工具。借助 Maven,开发人员能将更改检入源代码控制工具中,代码在这里自动经过测试并构建为可部署的工件。
抄本
Maven 使用 XML 文件来执行构建和测试,这些 XML 文件定义了构建流程。Maven 是一个高度结构化的构建系统,能实现跨项目的统一性。这使开发人员能在不同项目之间移动,并为他们的构建系统提供一致的接口。
“PCC 系统中使用的工具和技术使团队能自动化构建流程,并在部署发生更改时非常确信代码会正常运行且容易维护。”
Maven 基于生命周期。构建生命周期包含以下主要步骤。如果任何步骤失败,则不会执行下一步,并会生成一个错误日志。
- 验证。验证执行构建生命周期所需的所有信息均可用且语法正确。
- 生成源代码。为项目生成所有必要的源代码。在 PCC 项目中,会利用这一步通过 OpenJPA 提供程序来自动生成一些与数据存储访问相关的代码段。
- 处理源代码。在编译之前检查源代码,并在它之上执行转换步骤。
- 生成资源和处理资源。类似于对应的源代码步骤,但在资源(比如 XML 文件)上进行操作,而不是在代码上。
- 编译。将源代码编译为可执行代码。
- 处理测试源代码和处理测试资源。对测试配置进行预处理,以便设置测试框架和上下文。
- 测试编译。将测试编译为可执行代码。
- 测试。执行测试。
- 打包。获取已编译的代码,并采用某种可分发的格式存放它们,比如 Java 存档 (JAR)。
- 安装。将已打包的代码安装到本地存储库。完成安装后,JAR 可供其他相关项目用作依赖项。
- 部署。将工件推送到生产和开发环境,以便提供 PCC 操作。
表 1 列出了 Maven 构建流程包含的所有项目,以及它们各自支持 PCC 的功能。
表 1.Maven 构建流程中涉及的项目项目功能 BigEngine 执行多线程的大数据作业,建立 RESTful 服务的端点,拥有 WebSphere Liberty 配置文件的配置。 Config 解析应用程序、网球、高尔夫和整个赛事配置。 Factors 包含来自高尔夫球和网球模拟的提取器算法。 Persistence 处理数据库功能。 RacketStream 将情绪分析结果提取到 InfoSphere Streams 中。 Player 包含有关运动员的信息。 Shared 包含在 PCC 项目之间共享的元素。 Shared-Integration 提供对共享项目的集成测试。 TwitterAnalysis 对推文数量进行分析。 TwitterExporter 将 Twitter 提要导出到其他 InfoSphere Steams 流程。 TwitterFeed 利用 Twitter API 读取信息。 WebLogAnalyzer 分析 Web 日志内容,以便从中提取提及运动员的信息。 Visual 该系统支持代理从前端可视界面发往后端 BigEngine System 的请求。 图 2 中的 BigEngine 项目是 PCC 的主要作业。此作业构建了 PCC 用来预测站点流量的分析和决策引擎。BigEngine-Integration 作业对 BigEngine 执行耗时的集成测试,并与 BigEngine 作业隔离,以便加速小更改的交付速度。TwitterAnalysis、TwitterExporter 和 StreamsLogAggregator 作业被用于为实现 InfoSphere Streams 中的部署而创建工件。WebLogAnalyzer 等其他项目提供了支持 PCC 的大数据功能。这些都是基于 Maven 的项目。
图 2.PCC 的基于 Maven 的 Jenkins 构建作业 |
|
|
|
|
|