Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/nyg123/go_unit
https://github.com/nyg123/go_unit
coverage git golang gotest php phpunit
Last synced: about 2 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/nyg123/go_unit
- Owner: nyg123
- Created: 2022-04-20T07:00:20.000Z (over 2 years ago)
- Default Branch: master
- Last Pushed: 2022-06-27T07:35:25.000Z (over 2 years ago)
- Last Synced: 2024-06-20T03:49:12.245Z (7 months ago)
- Topics: coverage, git, golang, gotest, php, phpunit
- Language: Go
- Homepage:
- Size: 26.4 KB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: Readme.md
Awesome Lists containing this project
README
## 统计一个分支每人开发的代码行数,及单测覆盖率
- 统计某个分支基于基础分支(master)的提交
- 不统计空行,空格的变动
- 可指定需统计的文件扩展名,如php,go
- 可排除不需要统计的文件夹,如vendor
- 代码提交后又删除的,不计入统计
- 目前覆盖率解析只支持golang php## 使用方法
> go_unit -c unitConf.json```-c``` 指定配置文件 默认是unitConf.json
执行的结果如下
```txt
提交人:[email protected] 变更行数1681 可测试代码行数1051 单元测试覆盖行数933 覆盖率88.77%
提交人:[email protected] 变更行数52 可测试代码行数27 单元测试覆盖行数26 覆盖率96.30%
提交人:[email protected] 变更行数129 可测试代码行数104 单元测试覆盖行数32 覆盖率30.77%
提交人:[email protected] 变更行数1 可测试代码行数1 单元测试覆盖行数1 覆盖率100.00%
合计: 变更行数1863 可测试代码行数1183 单元测试覆盖行数992 覆盖率83.85%```
## 配置说明,以go项目为例
```json
{
"lang" : "go",
"path" : "./",
"coverage_path" : "./coverage.out",
"coverage_prefix" : "go_unit/",
"diff_commit" : "master",
"diff_exclude" : [
"/protobuf/",
".pb.go$",
".pb.gw.go$",
"_test.go$"
],
"unit_exclude" : [
"main.go"
],
"ext" : [
"go"
],
"show_detail" : true
}
```
- lang: 指定语言,目前支持go,php
- path: 指定项目目录,默认是当前目录
- coverage_path: 指定覆盖率输出文件路径,默认是coverage.out
- coverage_prefix: 指定覆盖率输出文件前缀,覆盖率文件中的文件路径会加的有项目名称,
例如 `go_unit/main.go:32.9,35.25 1 0` 需要指定前缀为 `go_unit/`
- diff_commit 用当前分支与哪个分支进行比较,一般是与`master`对比
- diff_exclude: 指定不需要统计代码变更的文件,支持正则 例如 `/protobuf/` 一些自动生成的文件、外部包、或者是测试文件我们不需要统计为代码变更
- unit_exclude: 指定不需要统计覆盖率的文件,支持正则 例如 `main.go`
- ext: 指定统计的文件扩展名 例如 `go`
- show_detail: 是否输出每个人的单测未覆盖的代码详情,默认是true