本文档概述了Apache ECharts项目中使用的开发和测试基础设施。它侧重于构建系统和视觉回归测试框架,这些是为ECharts做出贡献的开发者的基本工具。有关ECharts架构和组件的信息,请参阅 核心系统。
ECharts使用复杂的构建系统将TypeScript源代码转换为各种分发格式。构建系统负责TypeScript编译、打包和预发布任务。
来源: build/build.js build/config.js build/pre-publish.js
构建过程包括几个关键步骤
构建系统支持不同的构建目标
| 构建目标 | 描述 | 输出文件 |
|---|---|---|
all | 完整的ECharts功能 | dist/echarts.js |
common | 常用的图表和组件 | dist/echarts.common.js |
simple | 仅包含基本图表 | dist/echarts.simple.js |
extension | 附加扩展 | dist/extension/*.js |
ssr | 服务器端渲染客户端 | ssr/client/dist/index.js |
构建系统可以通过npm脚本操作,也可以直接通过命令行操作
来源: build/build.js40-78 build/config.js90-119 build/pre-publish.js84-169
预发布流程准备代码库以供分发
此过程通过`--prepublish`标志执行,或通过npm脚本`npm run prepare`执行。
来源: build/pre-publish.js175-208 .gitignore180-212 package.README.md8-26
ECharts使用全面的视觉回归测试系统,以确保更改不会引入视觉回归。
视觉回归测试系统允许开发者
该系统使用Puppeteer进行浏览器自动化和屏幕截图比较。
来源: test/runTest/server.js test/runTest/cli.js test/runTest/client.js test/runTest/runtime/main.js
来源: test/runTest/server.js65-85 test/runTest/cli.js19-66 test/runTest/client.js20-121
ECharts中的测试用例是HTML文件,用于设置特定的图表配置。每个测试用例通常
测试操作以JSON文件的形式存储在`test/runTest/actions/`目录下,其中包含记录的用户交互,如鼠标移动、点击和滚动。
来源: test/runTest/cli.js114-147 test/runTest/actions/__meta__.json test/graph-case.html test/custom-update.html
测试执行过程遵循以下步骤
| 选项 | 描述 |
|---|---|
| 预期来源 | 基准版本的来源(发布版本、夜间构建、PR、本地) |
| 预期版本 | 要比较的特定版本号 |
| 实际来源 | 正在测试的版本的来源 |
| 实际版本 | 正在测试的版本号 |
| 渲染器 | 渲染模式(canvas/svg) |
| 粗指针 | 启用/禁用粗指针模拟 |
| 线程 | 并行测试线程数 |
来源: test/runTest/server.js239-258 test/runTest/cli.js36-59 test/runTest/client/index.html146-216
要运行视觉回归测试,您需要
在`test/runTest`目录中安装依赖项
启动测试服务器
这将会在您的浏览器中启动测试仪表板。
测试仪表板允许您
交互记录器允许您
来源: test/runTest/client/client.js398-546 test/runTest/server.js395-453 test/runTest/runtime/main.js78-112
测试结果显示在仪表盘中,其中包含
对于失败的测试,您可以
来源: test/runTest/client/index.html225-316 test/runTest/genReport.js104-151
testHelper.create() 函数来简化图表创建来源: test/runTest/blacklist.js test/runTest/actions/graph-case.json test/lib/config.js
Apache ECharts 的开发和测试基础设施为维护代码质量和防止视觉回归提供了坚实的基础。构建系统能够有效地将 TypeScript 源代码转换为各种分发格式,而视觉回归测试系统则确保更改不会无意中改变图表的视觉输出。
通过理解和利用这些工具,贡献者可以充满信心地进行开发,并保持 ECharts 项目所需的高质量标准。