什么是序列覆盖?

What is sequence coverage?

我正在使用 simplecov 进行代码覆盖。我不知道什么是序列覆盖率。我用谷歌搜索了它,但我找不到任何东西,尽管我确实找到了有关分支机构覆盖率的信息。

这是我在 Shippable CI 中看到的内容:

显然 "Sequence Coverage" 是可交付的 CI 条款。根据Shippable CI's docs,"sequence coverage"只是表示线覆盖。也许他们选择这个词是为了与 "branch coverage".

形成对比

术语"Sequence coverage"来自Shippable CI,而不是simplecov。

Shippable's API documentation我们可以找到:

branchCoveragePercent The percentage of branches (if/then/else condtions) that are covered by tests

sequenceCoveragePercent Percentage of lines there are code coverage for

因此分支覆盖率计算所有代码分支,例如:

if a==b
  do stuff            # branch 1
else
  do other stuff      # branch 2
end

现在,如果您的测试套件仅在 a==b 时进行测试,则此文件的分支覆盖率 为 50%。

序列覆盖率是常规的逐行覆盖率报告,如果您的代码有 100 行并且在测试期间只有 70% 的行被 运行,您的 序列覆盖率 是 70%.