When solidity generates source maps during contract compilation, the contracts are referred to by an id, which corresponds to an array index. We may not want to cover all sources that were included in a compilation, but because we use array indexes (vs. the id that is provided by solidity compiler) to map the contract to the sourceMap, the provided sourceCodes array must include the code at the correct index. This can result in empty slots in the sourceCodes array. This commit allows the coverage to only be collected for the contracts with provided sourceCode.
@0xproject/sol-cov
A Solidity code coverage tool.
Read the Documentation.
Installation
yarn add @0xproject/sol-cov
Import
import { CoverageSubprovider } from '@0xproject/sol-cov';
or
var CoverageSubprovider = require('@0xproject/sol-cov').CoverageSubprovider;
Contributing
We welcome improvements and fixes from the wider community! To report bugs within this package, please create an issue in this repository.
Please read our contribution guidelines before getting started.
Install dependencies
If you don't have yarn workspaces enabled (Yarn < v1.0) - enable them:
yarn config set workspaces-experimental true
Then install dependencies
yarn install
Build
To build this package and all other monorepo packages that it depends on, run the following from the monorepo root directory:
PKG=@0xproject/sol-cov yarn build
Or continuously rebuild on change:
PKG=@0xproject/sol-cov yarn watch
Clean
yarn clean
Lint
yarn lint
Run Tests
yarn test