Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

🎄 Go code coverage to SVG treemap

License

NotificationsYou must be signed in to change notification settings

nikolaydubina/go-cover-treemap

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

53 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

go-recipesOpenSSF Scorecard

Useful when you have large project with lots of files and packages

New! Now available athttps://go-cover-treemap.io 🎉

$ go install github.com/nikolaydubina/go-cover-treemap@latest$ go test -coverprofile cover.out ./...$ go-cover-treemap -coverprofile cover.out > out.svg

github.com/gohugoio/hugo

example-hugo

..also available in 1080x360

example-hugo-small

..and even 1080x180

example-hugo-small

github.com/gin-gonic/gin

example-gin

github.com/go-chi/chi

example-chi

github.com/nikolaydubina/treemap

example-treemap

github.com/nikolaydubina/go-featureprocessing

example-go-featureprocessing

Disclaimer

In all examples above I rungo test -coverprofile <my-file> ./....I did not do any special setup.Some projects may require additional steps to properly run test and generate full coverprofile.What you see is "lower bound" of coverage for those projects.All profiles generated onmain branch of each project in GitHub on 2021-12-07.

Contributions

Welcomed! Add pretty color palettes! Add interesting examples!

Reference

Appendix A: Statements vs File for Size

You can see that structure and heat changes forgithub.com/gohugoio/hugo.Subtrees that look bad for files no longer look as bad for statements.Lots of red boxes for files become very small and unnoticeable.This can be because they contain non-testable constructs like constants.It is more accurate to use statments, since heat is percentage of covered statements, and we compute heat by weighting sum by sizes of children.In short, you are more likely want to use statements for size.

filesexample-hugo-files

statementsexample-hugo

Appendix B: Long Roots

It is common to have root and first few children to have only one child.Each takes margin and wastes space.We can collapse these into longer name, and use that space for visualizing higher depth of boxes.This is particularly useful for narrow dimensions, which makes feasible useful narrow dimension.

1080x360 with root collapsingexample-long-root-med-collapsed

1080x360 without root collapseexample-long-root-med-no-collapse

1080x180 with root collapsingexample-long-root-med-collapsed

1080x180 without root collapseexample-long-root-med-no-collapse

Appendix C: Web UI

Web UI is maintained in dedicated repository:https://github.com/nikolaydubina/go-cover-treemap-web

This is to isolate web (WASM/JS/HTML) needed dependencies, likesyscall/js from minimal CLI package.

It turns out interactive UI is very helpful. Brower can be utilized as effective input source for:

  • changing dimensions of window -> changing dimensions of SVG
  • drag and drop file
  • slider to increase granularity of treemap

Appendix D: Only Folders

Projects that have lots of files may benefit from not displaying filesbut only folders.This is also useful when you want to see impact of immediate files in folder to overall folder heat.Hierarchical properties of size (sum of sizes of children) and heat (weighted heat of children) are preserved.Immediate children.go files in folder are aggregated into single child*.If there is only one* child, then it is skipped— suggested byherlon214

filesexample-hugo

only foldersexample-hugo-files

only folders without aggregation (heat and size property not preserved)example-hugo-files

Appendix E: Accessibility

Is is important that everyone can use this tool.Such we are providing color-blind option Red-Blue alternative.— suggested byBr3nda

normalexample-hugo

color-blindexample-hugo-color-blind

Docs

$ cat testdata/treemap.cover| ./go-cover-treemap> docs/go-cover-treemap-stdin.svg$ ./go-cover-treemap -coverprofile testdata/treemap.cover> docs/go-cover-treemap.svg$ ./go-cover-treemap -coverprofile testdata/go-featureprocessing.cover> docs/go-featureprocessing.svg$ ./go-cover-treemap -coverprofile testdata/gin.cover> docs/gin.svg$ ./go-cover-treemap -coverprofile testdata/chi.cover> docs/chi.svg$ ./go-cover-treemap -coverprofile testdata/hugo.cover> docs/hugo.svg$ ./go-cover-treemap -coverprofile testdata/hugo.cover -w 1080 -h 360> docs/hugo-1080x360.svg$ ./go-cover-treemap -coverprofile testdata/hugo.cover -w 1080 -h 180> docs/hugo-1080x180.svg$ ./go-cover-treemap -coverprofile testdata/hugo.cover -statements=false> docs/hugo-files.svg$ ./go-cover-treemap -coverprofile testdata/hugo.cover -collapse-root=false> docs/hugo-long-root.svg$ ./go-cover-treemap -coverprofile testdata/hugo.cover -collapse-root=false -w 1080 -h 360> docs/hugo-long-root-1080x360.svg$ ./go-cover-treemap -coverprofile testdata/hugo.cover -collapse-root=false -w 1080 -h 180> docs/hugo-long-root-1080x180.svg$ ./go-cover-treemap -coverprofile testdata/hugo.cover -only-folders> docs/hugo-only-folders.svg$ ./go-cover-treemap -coverprofile testdata/hugo.cover --color-blind> docs/hugo-color-blind.svg

About

🎄 Go code coverage to SVG treemap

Topics

Resources

License

Security policy

Stars

Watchers

Forks

Sponsor this project

 

Contributors10


[8]ページ先頭

©2009-2025 Movatter.jp