Skip to content

chaintope/contract-coverager

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

32 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Name

Overview

Description

Coverage Tool for SmartContract. Analayzing based on bytecodes and abi specification for functions.

Requirement

Truffle v5.0.14 or higher.

## Install
`npm install contract-coverage`

## Usage
Add following code in your truffle test cases:
```js
const CoverageSubprovider = require('contract-coverager')
const engine = CoverageSubprovider.injectInTruffle(artifacts, web3)

and define before, after hook code:

before(() => engine.start())
after(() => engine.stop())

example code overall:

const CoverageSubprovider = require('contract-coverager')
const engine = CoverageSubprovider.injectInTruffle(artifacts, web3)
const VyperStorage = artifacts.require("VyperStorage")

contract("VyperStorage", (accounts) => {
  before(() => engine.start())
  after(() => engine.stop())

  it("...should store the value 89.", async () => {
    const storage = await VyperStorage.new()

    // Set value of 89
    const receipt = await storage.set(89)
    // Get stored value
    const storedData = await storage.get()
    assert.equal(storedData, 89, "The value 89 was not stored.")
  })
})

CAUTION

if request method is eth_call, then this Lib re-request eth_sendTransaction with same params, for getting traceLogs. so that, in using this coverage tool, more gas is consumes. may out of gas error a lot of happen.

Demo

Not yet support list

  • Solidity's Contract (maybe available, but not tested)

Licence

GPLv3

Author

nakajo2011