seimin 55b3368751 项目初始化 %!s(int64=3) %!d(string=hai) anos
..
data 55b3368751 项目初始化 %!s(int64=3) %!d(string=hai) anos
lib 55b3368751 项目初始化 %!s(int64=3) %!d(string=hai) anos
ut 55b3368751 项目初始化 %!s(int64=3) %!d(string=hai) anos
-primary-cases.html 55b3368751 项目初始化 %!s(int64=3) %!d(string=hai) anos
README.md 55b3368751 项目初始化 %!s(int64=3) %!d(string=hai) anos
allZero.html 55b3368751 项目初始化 %!s(int64=3) %!d(string=hai) anos
area.html 55b3368751 项目初始化 %!s(int64=3) %!d(string=hai) anos
area2.html 55b3368751 项目初始化 %!s(int64=3) %!d(string=hai) anos
areaLineUpdate.html 55b3368751 项目初始化 %!s(int64=3) %!d(string=hai) anos
axes.html 55b3368751 项目初始化 %!s(int64=3) %!d(string=hai) anos
axis-extrema.html 55b3368751 项目初始化 %!s(int64=3) %!d(string=hai) anos
axis.html 55b3368751 项目初始化 %!s(int64=3) %!d(string=hai) anos
bar-large.html 55b3368751 项目初始化 %!s(int64=3) %!d(string=hai) anos
bar.html 55b3368751 项目初始化 %!s(int64=3) %!d(string=hai) anos
bar2.html 55b3368751 项目初始化 %!s(int64=3) %!d(string=hai) anos
bar3.html 55b3368751 项目初始化 %!s(int64=3) %!d(string=hai) anos
bmap.html 55b3368751 项目初始化 %!s(int64=3) %!d(string=hai) anos
boxplot-multi.html 55b3368751 项目初始化 %!s(int64=3) %!d(string=hai) anos
boxplot.html 55b3368751 项目初始化 %!s(int64=3) %!d(string=hai) anos
brush.html 55b3368751 项目初始化 %!s(int64=3) %!d(string=hai) anos
brush2.html 55b3368751 项目初始化 %!s(int64=3) %!d(string=hai) anos
candlestick.html 55b3368751 项目初始化 %!s(int64=3) %!d(string=hai) anos
candlestickConnect.html 55b3368751 项目初始化 %!s(int64=3) %!d(string=hai) anos
chord.html 55b3368751 项目初始化 %!s(int64=3) %!d(string=hai) anos
color-mix-aqi.html 55b3368751 项目初始化 %!s(int64=3) %!d(string=hai) anos
config.js 55b3368751 项目初始化 %!s(int64=3) %!d(string=hai) anos
connect-manually.html 55b3368751 项目初始化 %!s(int64=3) %!d(string=hai) anos
connect.html 55b3368751 项目初始化 %!s(int64=3) %!d(string=hai) anos
connect2.html 55b3368751 项目初始化 %!s(int64=3) %!d(string=hai) anos
css-transform.html 55b3368751 项目初始化 %!s(int64=3) %!d(string=hai) anos
dataView.html 55b3368751 项目初始化 %!s(int64=3) %!d(string=hai) anos
dataZoom-axes.html 55b3368751 项目初始化 %!s(int64=3) %!d(string=hai) anos
dataZoom-axis-type.html 55b3368751 项目初始化 %!s(int64=3) %!d(string=hai) anos
dataZoom-cartesian-h.html 55b3368751 项目初始化 %!s(int64=3) %!d(string=hai) anos
dataZoom-cartesian-v.html 55b3368751 项目初始化 %!s(int64=3) %!d(string=hai) anos
dataZoom-dataShadow.html 55b3368751 项目初始化 %!s(int64=3) %!d(string=hai) anos
dataZoom-dataShadow0.html 55b3368751 项目初始化 %!s(int64=3) %!d(string=hai) anos
dataZoom-dataShadow1.html 55b3368751 项目初始化 %!s(int64=3) %!d(string=hai) anos
dataZoom-dataShadow2.html 55b3368751 项目初始化 %!s(int64=3) %!d(string=hai) anos
dataZoom-dynamic.html 55b3368751 项目初始化 %!s(int64=3) %!d(string=hai) anos
dataZoom-geo.html 55b3368751 项目初始化 %!s(int64=3) %!d(string=hai) anos
dataZoom-rainfall-connect.html 55b3368751 项目初始化 %!s(int64=3) %!d(string=hai) anos
dataZoom-rainfall-inside.html 55b3368751 项目初始化 %!s(int64=3) %!d(string=hai) anos
dataZoom-rainfall.html 55b3368751 项目初始化 %!s(int64=3) %!d(string=hai) anos
dataZoom-scatter-category.html 55b3368751 项目初始化 %!s(int64=3) %!d(string=hai) anos
dataZoom-scatter-hv-polar.html 55b3368751 项目初始化 %!s(int64=3) %!d(string=hai) anos
dataZoom-scatter-hv.html 55b3368751 项目初始化 %!s(int64=3) %!d(string=hai) anos
dataZoom-scatter-toolbox.html 55b3368751 项目初始化 %!s(int64=3) %!d(string=hai) anos
dataZoomHighPrecision.html 55b3368751 项目初始化 %!s(int64=3) %!d(string=hai) anos
diff.html 55b3368751 项目初始化 %!s(int64=3) %!d(string=hai) anos
dynamicData.html 55b3368751 项目初始化 %!s(int64=3) %!d(string=hai) anos
dynamicData2.html 55b3368751 项目初始化 %!s(int64=3) %!d(string=hai) anos
dynamicData3.html 55b3368751 项目初始化 %!s(int64=3) %!d(string=hai) anos
effectScatter.html 55b3368751 项目初始化 %!s(int64=3) %!d(string=hai) anos
esl.js 55b3368751 项目初始化 %!s(int64=3) %!d(string=hai) anos
force.html 55b3368751 项目初始化 %!s(int64=3) %!d(string=hai) anos
force2.html 55b3368751 项目初始化 %!s(int64=3) %!d(string=hai) anos
force3.html 55b3368751 项目初始化 %!s(int64=3) %!d(string=hai) anos
funnel.html 55b3368751 项目初始化 %!s(int64=3) %!d(string=hai) anos
gauge.html 55b3368751 项目初始化 %!s(int64=3) %!d(string=hai) anos
geo-map.html 55b3368751 项目初始化 %!s(int64=3) %!d(string=hai) anos
geoLine.html 55b3368751 项目初始化 %!s(int64=3) %!d(string=hai) anos
geoScatter.html 55b3368751 项目初始化 %!s(int64=3) %!d(string=hai) anos
getOption.html 55b3368751 项目初始化 %!s(int64=3) %!d(string=hai) anos
graph-grid.html 55b3368751 项目初始化 %!s(int64=3) %!d(string=hai) anos
graph-simple.html 55b3368751 项目初始化 %!s(int64=3) %!d(string=hai) anos
graph.html 55b3368751 项目初始化 %!s(int64=3) %!d(string=hai) anos
graphicOption.html 55b3368751 项目初始化 %!s(int64=3) %!d(string=hai) anos
heatmap-large.html 55b3368751 项目初始化 %!s(int64=3) %!d(string=hai) anos
heatmap-map.html 55b3368751 项目初始化 %!s(int64=3) %!d(string=hai) anos
heatmap.html 55b3368751 项目初始化 %!s(int64=3) %!d(string=hai) anos
ie8.html 55b3368751 项目初始化 %!s(int64=3) %!d(string=hai) anos
largeLine.html 55b3368751 项目初始化 %!s(int64=3) %!d(string=hai) anos
lazyUpdate.html 55b3368751 项目初始化 %!s(int64=3) %!d(string=hai) anos
line-visual.html 55b3368751 项目初始化 %!s(int64=3) %!d(string=hai) anos
line.html 55b3368751 项目初始化 %!s(int64=3) %!d(string=hai) anos
lines-bus.html 55b3368751 项目初始化 %!s(int64=3) %!d(string=hai) anos
lines-symbol.html 55b3368751 项目初始化 %!s(int64=3) %!d(string=hai) anos
lines-track.html 55b3368751 项目初始化 %!s(int64=3) %!d(string=hai) anos
loading.html 55b3368751 项目初始化 %!s(int64=3) %!d(string=hai) anos
logScale.html 55b3368751 项目初始化 %!s(int64=3) %!d(string=hai) anos
map-contour.html 55b3368751 项目初始化 %!s(int64=3) %!d(string=hai) anos
map-parallel.html 55b3368751 项目初始化 %!s(int64=3) %!d(string=hai) anos
map.html 55b3368751 项目初始化 %!s(int64=3) %!d(string=hai) anos
mapWorld.html 55b3368751 项目初始化 %!s(int64=3) %!d(string=hai) anos
markArea.html 55b3368751 项目初始化 %!s(int64=3) %!d(string=hai) anos
markLine.html 55b3368751 项目初始化 %!s(int64=3) %!d(string=hai) anos
markPoint.html 55b3368751 项目初始化 %!s(int64=3) %!d(string=hai) anos
masterPainterColorChoice.html 55b3368751 项目初始化 %!s(int64=3) %!d(string=hai) anos
media-dataZoom.html 55b3368751 项目初始化 %!s(int64=3) %!d(string=hai) anos
media-finance.html 55b3368751 项目初始化 %!s(int64=3) %!d(string=hai) anos
media-pie.html 55b3368751 项目初始化 %!s(int64=3) %!d(string=hai) anos
mix.html 55b3368751 项目初始化 %!s(int64=3) %!d(string=hai) anos
mobileBench.html 55b3368751 项目初始化 %!s(int64=3) %!d(string=hai) anos
multipleGrid.html 55b3368751 项目初始化 %!s(int64=3) %!d(string=hai) anos
parallel-aqi.html 55b3368751 项目初始化 %!s(int64=3) %!d(string=hai) anos
parallel-nutrients.html 55b3368751 项目初始化 %!s(int64=3) %!d(string=hai) anos
pictorial-repeat.html 55b3368751 项目初始化 %!s(int64=3) %!d(string=hai) anos
pictorial-single.html 55b3368751 项目初始化 %!s(int64=3) %!d(string=hai) anos
pie-calculable.html 55b3368751 项目初始化 %!s(int64=3) %!d(string=hai) anos
pie.html 55b3368751 项目初始化 %!s(int64=3) %!d(string=hai) anos
pie2.html 55b3368751 项目初始化 %!s(int64=3) %!d(string=hai) anos
pie3.html 55b3368751 项目初始化 %!s(int64=3) %!d(string=hai) anos
pieDynamic.html 55b3368751 项目初始化 %!s(int64=3) %!d(string=hai) anos
polarLine.html 55b3368751 项目初始化 %!s(int64=3) %!d(string=hai) anos
polarLine2.html 55b3368751 项目初始化 %!s(int64=3) %!d(string=hai) anos
polarScatter.html 55b3368751 项目初始化 %!s(int64=3) %!d(string=hai) anos
punchCard.html 55b3368751 项目初始化 %!s(int64=3) %!d(string=hai) anos
radar.html 55b3368751 项目初始化 %!s(int64=3) %!d(string=hai) anos
radar2.html 55b3368751 项目初始化 %!s(int64=3) %!d(string=hai) anos
radar3.html 55b3368751 项目初始化 %!s(int64=3) %!d(string=hai) anos
radar4.html 55b3368751 项目初始化 %!s(int64=3) %!d(string=hai) anos
reset.css 55b3368751 项目初始化 %!s(int64=3) %!d(string=hai) anos
roseType.html 55b3368751 项目初始化 %!s(int64=3) %!d(string=hai) anos
sankey.html 55b3368751 项目初始化 %!s(int64=3) %!d(string=hai) anos
scale-integer.html 55b3368751 项目初始化 %!s(int64=3) %!d(string=hai) anos
scatter-single-axis.html 55b3368751 项目初始化 %!s(int64=3) %!d(string=hai) anos
scatter.html 55b3368751 项目初始化 %!s(int64=3) %!d(string=hai) anos
scatterMatrix.html 55b3368751 项目初始化 %!s(int64=3) %!d(string=hai) anos
selectedMode.html 55b3368751 项目初始化 %!s(int64=3) %!d(string=hai) anos
showTip.html 55b3368751 项目初始化 %!s(int64=3) %!d(string=hai) anos
singleAxisScales.html 55b3368751 项目初始化 %!s(int64=3) %!d(string=hai) anos
symbol.html 55b3368751 项目初始化 %!s(int64=3) %!d(string=hai) anos
theme.html 55b3368751 项目初始化 %!s(int64=3) %!d(string=hai) anos
themeRiver.html 55b3368751 项目初始化 %!s(int64=3) %!d(string=hai) anos
themeRiver2.html 55b3368751 项目初始化 %!s(int64=3) %!d(string=hai) anos
timeScale.html 55b3368751 项目初始化 %!s(int64=3) %!d(string=hai) anos
timeline-finance.html 55b3368751 项目初始化 %!s(int64=3) %!d(string=hai) anos
timeline-layout.html 55b3368751 项目初始化 %!s(int64=3) %!d(string=hai) anos
tooltip.html 55b3368751 项目初始化 %!s(int64=3) %!d(string=hai) anos
touch-slide.html 55b3368751 项目初始化 %!s(int64=3) %!d(string=hai) anos
touch-test.html 55b3368751 项目初始化 %!s(int64=3) %!d(string=hai) anos
touch-tooltip.html 55b3368751 项目初始化 %!s(int64=3) %!d(string=hai) anos
treemap-disk.html 55b3368751 项目初始化 %!s(int64=3) %!d(string=hai) anos
treemap-obama.html 55b3368751 项目初始化 %!s(int64=3) %!d(string=hai) anos
treemap-option.html 55b3368751 项目初始化 %!s(int64=3) %!d(string=hai) anos
treemap-option2.html 55b3368751 项目初始化 %!s(int64=3) %!d(string=hai) anos
treemap-simple.html 55b3368751 项目初始化 %!s(int64=3) %!d(string=hai) anos
treemap-visual.html 55b3368751 项目初始化 %!s(int64=3) %!d(string=hai) anos
visualMap-categories.html 55b3368751 项目初始化 %!s(int64=3) %!d(string=hai) anos
visualMap-continuous.html 55b3368751 项目初始化 %!s(int64=3) %!d(string=hai) anos
visualMap-layout.html 55b3368751 项目初始化 %!s(int64=3) %!d(string=hai) anos
visualMap-opacity.html 55b3368751 项目初始化 %!s(int64=3) %!d(string=hai) anos
visualMap-pieces.html 55b3368751 项目初始化 %!s(int64=3) %!d(string=hai) anos
visualMap-scatter-colorAndSymbol.html 55b3368751 项目初始化 %!s(int64=3) %!d(string=hai) anos
visualMap-scatter-symbolSize.html 55b3368751 项目初始化 %!s(int64=3) %!d(string=hai) anos
webkit-dep.html 55b3368751 项目初始化 %!s(int64=3) %!d(string=hai) anos
worldPopulationBubble.html 55b3368751 项目初始化 %!s(int64=3) %!d(string=hai) anos

README.md

Test Guide

Functional Test

Open ./*.html files in Web Browsers.

Unit Test

Rendering-relevant

Our test strategy is to compare the rendered canvas of current version with last release version. The comparison can either based on the content of rendered canvas, or the stack of canvas operations.

When a test case fails, it doesn't necessary to be a bug since the rendering method may be changed intentionally in a commit. So in this case, we output the rendering result of both versions and the diff result.

Make sure ../dist/echarts.js is the built based on current source files by:

cd ../build
npm install
bash build.sh

By default, we compare current version with last release version. To run the test, you should first download last release using:

cd ../test/ut
./configure

which will download echart.js of last release into ./ut/tmp/oldEcharts.js.

Then, open ./ut/ui.html in Web Browsers.

Compare current with a specific release

If one argument is passed, we take it as the hash code of a release and compare current version with /dist/echarts.js of the that version.

# this compares current `/dist/echarts.js` with that of v3.1.6
./configure 3724a16

Compare arbitrary two commits

Since /dist/echarts.js is only the build result of release versions, to compare arbitrary versions, you need to checkout specific commits and build the source files. Put the build results as ./tmp/oldEcharts.js and ./tmp/newEcharts.js will work.

Rendering-irrelevant

Open ./ut.html files in Web Browsers.