Skip to content
forked from binhonglee/coco

Code coverage for Nim lang (CLI + library)

License

Notifications You must be signed in to change notification settings

mindreframer/coco

This branch is 2 commits behind binhonglee/coco:master.

Folders and files

NameName
Last commit message
Last commit date

Latest commit

24fc635 · Nov 2, 2018

History

27 Commits
Oct 21, 2018
Oct 21, 2018
Oct 23, 2018
Oct 17, 2018
Oct 22, 2018
Oct 17, 2018
Nov 2, 2018
Oct 21, 2018
Oct 29, 2018
Oct 24, 2018
Oct 21, 2018

Repository files navigation

43c4b9c5.png

Code coverage for Nim using LCOV.


Features

  • Line & Branch coverage support
  • Forwards nim compiler options
  • Works out-of-the box with Nim unittests
  • API + CLI
  • HTML report

Installation & usage

Install using Nimble:

nimble install coco

CLI

Generate a code coverage report:

coco --target "tests/**/*.nim" --cov '!tests' --compiler="--hints:off" 

The flag --target tells Coco to run and compile nim files in the tests/ directory (and subdirectories if any).

The flag --cov is helpful for extracting or removing data from the file *.info. Here we don't want code coverage for our tests, only for our main library coco.

The flag --compiler forwards its value directly to the Nim compiler.

To get the full list of available flags, type in your shell coco -h


By default, Coco will generate a lcov.info file on your project root folder and create a report under coverage/.

To check your report, open the file coverage/index.htmlin your browser:

a74b8ce4.png

VScode visualization

Install Coverage Gutters.

This nice plugin will map your coverage to your source code right into VScode:

b5193c3c.png

Library

import and use:

import coco

discard coverage(target = "tests/foo.nim", branch = true)

You can find the full documentation here: API Coco

Tests

This task has only been tested under MacOSX. Feel free to open a pull request to share your experiments to code coverage Nim projects.

TODO

  • Support for subdirectories in tests/
  • Coveralls.io integration

Dependencies

Linux Test Project - Coverage » lcov

About

Code coverage for Nim lang (CLI + library)

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • HTML 83.6%
  • CSS 8.3%
  • Nim 8.1%