Provide a greatly customizable coverage visualizer.
I ever admired that code-cov or gitlab, or sonarqube had a pretty nice UI to show file coverage, comparing to the default output by go tool cover -html=cover.out.
But after searching github I did not find they or other persons had made a ready to use tool. And I doubt that even one is there will it suite my needs?
So I decided to make an open source coverage visualizer with highly customization and multi-language support with modern javascript techniques.
- coverage statistics, shown hierarchically
- nice decorations
- label filtering
- more...
# clone this repo git clone https://github.com/xhd2015/coverage-visualizer cd coverage-visualizer # run npm intall, add --force if failed. npm install npm run build # open another terminal, serve at http://localhost:8000 npx http-server --port 8000 # open dist/editor-basic-self-contained.html open http://localhost:8000/dist/editor-basic-self-contained.htmlThere is historically a problem with loading monaco-editor's tff file, it will cause icons to be displayed as blank sqaure, see the issue#1949 Icons not visible in find widget after Upgrading monaco-editor to 0.19.0
I actually find a solution that simply works: just copy the codicon.ttf to your build directory, and dynamically import it via css.
- copy the ttf using webpack
npm install copy-webpack-plugin --save-devupdate webpack.config.js
// ...your code.... const path = require("path"); const CopyPlugin = require("copy-webpack-plugin"); module.exports = { // ...your code.... plugins: [ // ...your code.... // cp node_modules/monaco-editor/esm/vs/base/browser/ui/codicons/codicon/codicon.ttf dist/build/monaco-code-icons.tff new CopyPlugin({ patterns: [ { from: path.resolve( __dirname, "node_modules/monaco-editor/esm/vs/base/browser/ui/codicons/codicon/codicon.ttf" ), to: path.resolve(__dirname, "dist/build/monaco-code-icons.tff"), }, ], }), ], };- Load the ttf dynamically
We import the tff using dynamic load, see ./src/support/components/v2/Code.tsx for details.
let codeIconsTTFLoaded = false; function ensureCodeIconsTTFLoaded() { if (codeIconsTTFLoaded) { return; } codeIconsTTFLoaded = true; // runtime import const dynStyle = document.createElement("style"); dynStyle.textContent = ` @font-face { font-family: "codicon"; src: url("/build/monaco-code-icons.tff"); }`; document.body.appendChild(dynStyle); } ensureCodeIconsTTFLoaded();Behind this repository are monaco-editor,and code directly imported from monaco-tree.
Check documentation for more details.
Work still in progress, currently the default golang coverage visualizer is implemented.
- no default export
- prefer verbose syntax instead of one-liner code
open: xgo test-explorer - publish test explorer for the xgo project.
