sbt-scoverage
652
Stars
—
Forks
0
Watchers
—
Open Issues
待补全
许可证
Scala
语言
—
创建时间
最近更新
项目能做什么
sbt-scoverage 是一款用于 Scala 项目的代码覆盖率 sbt 插件。它通过对代码进行插桩,在运行测试时统计覆盖率,并生成直观的 HTML 和 XML 格式报告;还支持多项目数据聚合,以及通过正则或注释排除指定的类、包和文件。
来源:AI 基于仓库事实生成
· 内容以仓库实际 README 为准
使用说明 查看原始 README 原仓库文档
中文使用说明暂未生成。下面保留原仓库 README 摘录,命令与配置均以原文为准。
原始 README 摘录(英文原文,节选前 3000 字符)
# sbt-scoverage
[![gitter-badge][]][gitter]
[![maven-badge][]][maven]
[![license-badge][]][license]
sbt-scoverage is an sbt plugin that offers support for Scala code
coverage using [scoverage][]. This plugin supports Scala 2.12, 2.13,
and 3.
**NOTE**: ScalaJS and Scala Native support is limited to Scala 2.
**NOTE**: Scala 3 support starts with 3.2.x.
## Setup
**Requirements**: Requires sbt 1.2.8 or above.
In `project/plugins.sbt`:
```scala
addSbtPlugin("org.scoverage" % "sbt-scoverage" % "x.x.x")
```
If you are in an enterprise environment, and the above does not work, try:
```scala
libraryDependencies += "org.scoverage" % "sbt-scoverage_2.12_1.0" % "x.x.x"
```
## Usage
Run the tests with enabled coverage:
```
sbt clean coverage test
```
or if you have integration tests as well
```
sbt clean coverage it:test
```
This instruments standard build output so remember to clean again with coverage disabled before publishing your build to avoid including instrumentation.
To enable coverage directly in your build, use:
```scala
coverageEnabled := true
```
Note that this will result in code being always instrumented which is unlikely what you want.
To generate the coverage reports run
```
sbt coverageReport
```
Coverage reports will be in your
`target/scala-<scala-version>/scoverage-report` directory. There are
HTML and XML reports. The XML is useful if you need to programatically
use the results, or if you're writing a tool.
**NOTE**: If you're running the coverage reports from within an sbt
console session (as opposed to one command per sbt launch), then the
`coverage` command is sticky. To turn it back off when you're done
running reports, use the `coverageOff` command or reset
`coverageEnabled` with `set coverageEnabled := false`.
### Multi project reports
By default, scoverage will generate reports for each project
separately. You can merge them into an aggregated report by using the
following:
```
$ sbt coverageAggregate
```
**NOTE**: You do not need to run `coverageReport` before
`coverageAggregate`; it aggregates over the sub-projects' coverage
data directly, not the report xml.
### Exclude classes and packages and files
You can exclude classes from being considered for coverage measurement
by providing semicolon-separated list of regular expressions.
```scala
coverageExcludedPackages := "<empty>;Reverse.*;.*AuthService.*;models\\.data\\..*"
```
The regular expressions are matched against the fully qualified class
name, and must match the entire string to take effect. Any matched
classes will not be instrumented or included in the coverage report.
You can also exclude files and file paths.
```scala
coverageExcludedFiles := ".*\\/two\\/GoodCoverage;.*\\/three\\/.*"
```
**NOTE**: The `.scala` file extension needs to be omitted from the
filename, if one is given.
**NOTE**: These two options only work for Scala2, Scala 3.3.4+ and Scala 3.4.2+.
You can also mark sections of code with comments like:
```scala
// $COVERA
阅读完整原文
项目深度分析 AI 生成
Scala 专属轻量级覆盖率分析与 PR 门禁 SaaS
| 产品构想 | 针对使用 sbt-scoverage 产生 XML 报告的项目,提供开箱即用的 GitHub/GitLab 集成,在 PR 中自动对比增量覆盖率、做代码行高亮标注并阻断不达标合并。 |
| 核心功能 | 解析 sbt-scoverage 产物、PR 增量覆盖率 diff 计算、GitHub Action/GitLab CI 快速集成组件、合规趋势看板。 |
| 目标用户 | 使用 Scala 的中小研发团队、不想采购重型 SonarQube 但需要 PR 覆盖率看板的企业。 |
| 难度/周期 | 中等 · 1 - 2 个月 · 成本:极低(轻量云服务器、对象存储、域名解析) |
| 收费模式 | 免费版限制私有仓库数与席位数,企业版采用按座位或按私有仓库月费制(SaaS 模式)。 |
| 竞争风险 | 面对 Codecov、Coveralls 等通用型巨头的直接竞争;Scala 属于相对小众生态。 |
| 依据 | 已验证事实(插件原生支持输出 XML 报告用于第三方工具消费)与 AI推测(通用工具对 Scala 语法细节支持偶尔不稳定,存在细分生存空间) |
大型 Scala 复杂工程 CI 提速与精准测试套件
| 产品构想 | 利用 sbt-scoverage 插桩元数据与 Git Diff 分析,实现影响面推断,仅运行变更代码所影响的测试用例并提供覆盖率预测,显著缩减企业 CI 耗时与算力成本。 |
| 核心功能 | 基于覆盖率数据的测试用例与源码映射构建、差异化测试运行器(Predictive Test Selection)、sbt 缓存与加速优化器。 |
| 目标用户 | 拥有超大 Scala 代码库(如金融、大数据、高频交易等)且 CI 测试耗时超过数十分钟的企业。 |
| 难度/周期 | 高 · 3 - 5 个月 · 成本:低(主要为研发与测试硬件成本) |
| 收费模式 | 企业私有化部署 License、按照 CI 节省时长的抽成或按年企业订阅技术支持服务。 |
| 竞争风险 | 算法研发难度大,需深度 hook sbt 生命周期和 Scala 编译器抽象语法树(AST)。 |
| 依据 | 尚需验证的假设 |
高可靠合规行业的代码质量与测试审计咨询套件
| 产品构想 | 围绕 sbt-scoverage 提供金融/医疗等强监管领域所需的合规测试覆盖度报告自动化生成工具,并提供从 Scala 2 升级至 Scala 3 的测试框架兼容改造咨询。 |
| 核心功能 | 符合工业/金融审计标准的测试报告导出(PDF/Excel)、Scala 2 到 Scala 3 覆盖率插桩差异排查工具、多模块覆盖率治理咨询服务。 |
| 目标用户 | 金融科技公司、区块链团队、受合规审计约束且核心系统为 Scala 构建的传统企业。 |
| 难度/周期 | 低 · 2 - 4 周 · 成本:极低(纯人力与报告模板开发) |
| 收费模式 | 按次收取的咨询项目费、定制化报表生成插件买断授权。 |
| 竞争风险 | 咨询客源不稳定,依赖个人/团队在 Scala 生态的影响力与BD能力。 |
| 依据 | 已验证事实(README 显示其在 Scala 2/3 及多模块上有不同限制和支持特性,企业升级存在痛点) |
AI 基于仓库公开数据分析生成,含推测成分,不构成收益承诺。
报告会保存到 个人中心
竞品与相似项目 GitHub Search 真实检索
| 项目 | 中文简介 | Stars | 语言 |
|---|---|---|---|
| scoverage/sbt-coveralls | 中文介绍暂未生成 sbt-plugin to upload sbt-scoverage reports to coveralls |
100 | Scala |
| scoverage/sbt-scoverage-samples | 中文介绍暂未生成 Sample project for Scoverage in SBT |
40 | Scala |
| RichardBradley/sbt-scoverage-multiproject-sample | 中文介绍暂未生成 sbt-scoverage-multiproject-sample |
1 | Scala |
| h8io/sbt-scoverage-summary | 中文介绍暂未生成 Scoverage summary for GitHub comments |
1 | Scala |
| nwtgck/sbt-scoverage-prac | 中文介绍暂未生成 Practice of sbt-scoverage |
0 | Scala |
| MeiSign/sbt-scoverage-issue | 中文介绍暂未生成 sbt scoverage compiling issue |
0 | Shell |
以上为通过 GitHub 官方 Search API 检索的相似项目,功能差异与优劣势需进一步人工确认,配置 AI 后可生成对比分析。
项目优势与风险
| 技术成熟度 | 创建时间待补全,最近推送 ,发布过 52 个 Release |
| 社区活跃 | Star 652 / Fork 0 / Issue 0(数据支持,可自行核实) |
| 许可证 | 未检测到(需人工确认) |
| 主要风险 | 上游项目方向可能变化;同赛道竞争者较多(见竞品表);热度与需求不完全等价 |
安装与使用
此项目未提供 Docker 镜像,安装步骤以原仓库 README 为准(涉及依赖安装与环境配置,对新手门槛较高)。