discover
discover copied to clipboard
A utility for conceptualizing large Go code bases
discover
Discover is a utility to aid in conceptualizing large Go code bases. It is based on the idea presented by Alan Shreve in his talk on conceptualizing large software systems, held at dotGo 2015 in Paris. Watch the video for more information.
It does this by taking a code coverage profile generated by "go test" and using it to trim the source code down to the blocks that were actually being run.
Installation
Simply run go get github.com/eandre/discover/...
Examples
Run tests and output to console
discover test
Run a single test and output to console
discover test TestMyTestName
Run all tests starting with "TestFoo"
discover test TestFoo
Run all tests and write the output to ./foo
discover -output=./foo test
Parse an existing cover profile and write the output to ./foo
discover -output=./foo parse my-cover-profile.cov
Tips
If you want to track changes between two tests, write the output to a directory,
and then use git
to track the changes:
# Run first test
discover -output=/tmp/example test TestFirst
cd /tmp/example
git init && git add -A && git commit -m "First"
cd -
# Run second test
discover -output=/tmp/example test TestSecond
cd /tmp/example
git diff