回归测试

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-testsrun-javascriptcore-tests