回归测试
WebKit测试
在补丁可以提交到仓库中的任何框架之前,布局回归测试必须通过。要运行这些测试,请执行 run-webkit-tests
脚本。
该脚本将转储所有页面的渲染树,并将结果与预期正确结果进行比较。如果没有发现差异,则补丁已通过测试。如果任何测试失败,则在解决测试中的差异之前,不能提交补丁。
回归测试必须在最新发布的OS X版本上运行,因为预期结果是在该版本上生成的。
JavaScriptCore测试
如果您正在更改JavaScriptCore,则在提交更改之前必须运行一个额外的测试套件。这是Mozilla JavaScript测试套件。
JavaScript测试涵盖了什么?
JavaScript测试涵盖了核心JavaScript引擎的功能。这包括以下JavaScript对象:
- 数组
- 布尔值
- 日期
- 函数
- 全局对象
- 数学
- 数字
- 对象
- 正则表达式
- 字符串
此外,JavaScript测试还涵盖了解析、词法约定、表达式、语句、类型转换和异常处理。
如何运行测试
执行 run-javascriptcore-tests
脚本。该脚本将运行所有测试并总结结果与当前预期的差异。
发生了什么
所有测试运行完成后,测试结果将保存到 actual.html
。脚本会将您本地树中的这些结果与最新版本预期通过/失败的结果进行比较。如果您的更改导致了任何回归,您将会被告知。如果您修复了一个导致现有故障的Bug,您也将被告知您的修复影响了哪些具体测试。
接下来做什么
您修复了一个Bug,从而修复了一个测试。这意味着您现在为代码树设置了一个新的基线。
cp actual.html expected.html
当您提交更改时,基线(expected.html
)将在代码树中更新。
如果我导致了回归怎么办?
这不是世界末日。回去修复您的Bug,并根据需要多次重新运行 run-webkit-tests
或 run-javascriptcore-tests
。