迅闻网
让更多人看到你

一款不错的开源的代码检查辅助工具

在做代码检查时,咱们一般会运用东西来自动检测到的过错或样式问题,如咱们能够运用各种linter和静态代码剖析东西来检测本地机器、编辑器、CI服务中的此类问题。但静态剖析东西或许会有很多误报,咱们很难从混乱的剖析成果中找到真实的问题。一些linter支撑经过代码注释的减少这种误报,但这又或许会弄乱咱们的代码。
一种解决方案是每次提交代码时,只针对更改的地方做剖析,并产出评审注释。这样咱们能会集注意力,去发现真实的问题。而reviewdog正是供给这样一个才能的东西。
reviewdog供给了一种将代码检查谈论发布到代码保管服务(例如GitHub)的办法,该办法能够轻松地与任何linter东西集成。它运用lint东西的输出,假如发现与要检查的补丁不同,则将它们作为谈论发布。reviewdog还支撑在本地环境中运转以经过diff过滤lint东西的输出。
能够在本地运转reviewdog以按差异过滤成果,也能够在CI服务器中运转以发布评审陈述。
能够将GitHubAPI令牌存储在REVIEWDOG_GITHUB_API_TOKEN环境变量中。以下是CircleCI的基本装备
test:
pre:
-gogetgithub.com/haya14busa/reviewdog/cmd/reviewdog
override:
->-
gotoolvet-all-shadowstrict.2>&1|reviewdog-f=govet-ci=”circle-ci”
为了支撑任何编译器、linter或任何东西,reviewdog运用了Vim的“errorformat”功用(在Go中移植)。例如,假如成果格局是{file}:{linenumber}:{columnnumber}:{message},errorformat应该是%f:%l:%c:%m
errorformat还能处理更杂乱的多行音讯。
$cattestdata/sbt.in[warn]/path/to/F1.scala:203:localvalinmethodfisneverused:(warningsmaple3)
[warn]valx=1
[warn]^
[warn]/path/to/F1.scala:204:localvalinmethodfisneverused:(warningsmaple2)
[warn]valx=2
[warn]^
[error]/path/to/F2.scala:1093:error:value++isnotamemberofInt
[error]valx=1++2
[error]^
[warn]/path/to/dir/F3.scala:83:localvalinmethodfisneverused
[warn]valx=4
[warn]^
[error]/path/to/dir/F3.scala:84:error:value++isnotamemberofInt
[error]valx=5++2
[error]^
[warn]/path/to/dir/F3.scala:86:localvalinmethodfisneverused
[warn]valx=6
[warn]^$errorformat”%E[%t%.%+]%f:%l:error:%m””%A[%t%.%+]%f:%l:%m””%Z[%.%+]%p^””%C[%.%+]%.%#””%-G%.%#”<testdata/sbt.in/path/to/F1.scala|203col13warning|localvalinmethodfisneverused:(warningsmaple3)
/path/to/F1.scala|204col7warning|localvalinmethodfisneverused:(warningsmaple2)
/path/to/F2.scala|1093col15error|value++isnotamemberofInt
/path/to/dir/F3.scala|83col13warning|localvalinmethodfisneverused
/path/to/dir/F3.scala|84col19error|value++isnotamemberofInt
/path/to/dir/F3.scala|86col13warning|localvalinmethodfisneverused
理解整个errorformat功用有点困难,但在大多数情况下,咱们所需要知道的只是基本的简单项目(%f:文件,%l:行号,%c:列号,%m:音讯)。
最重要的是,reviewdog(haya14busa/errorformat)为首要东西供给了预界说的过错格局,因此在大多数情况下咱们不需要编写过错格局。能够在此处查看预界说的过错格局或reviewdog-list。
reviewdog能够运用任何东西自动检查咱们的代码,还能够在本地运转以加速开发速度。reviewdog帮助咱们引进严格的lint东西(或常常陈述误报成果的东西),它仅针对Pull-Request之类的差异检测,而不是整个代码库。

未经允许不得转载:迅闻网 » 一款不错的开源的代码检查辅助工具
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!

 

迅闻网-让更多人看到你

登录/注册返回首页