Skip to content
This repository has been archived by the owner on Jun 11, 2024. It is now read-only.

Commit

Permalink
Merge pull request #425 from MaciejBaj/408-coverage-coveralls
Browse files Browse the repository at this point in the history
Implement test coverage report - Closes #408
  • Loading branch information
karmacoma committed Feb 23, 2017
2 parents 2672b2d + d144583 commit 1f66a8f
Show file tree
Hide file tree
Showing 8 changed files with 123 additions and 28 deletions.
54 changes: 32 additions & 22 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ addons:
install:
- curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -
- echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list
- sudo apt-get update && sudo apt-get install yarn
- sudo apt-get update && sudo apt-get install yarn unzip
- yarn
before_script:
- createdb lisk_test
Expand All @@ -23,30 +23,40 @@ before_script:
- cd test/lisk-js/; yarn; cd ../..
- cp test/config.json test/genesisBlock.json .
- node app.js &> .app.log &
notifications:
webhooks: https://coveralls.io/webhook?repo_token=l6rLvPBYHIwA92FQQmCUUTLI4zPuS4r5C
env:
global:
- NODE_ENV=test
- HOST=http://0.0.0.0:4000
- COVERALLS_PARALLEL=true
matrix:
- TEST=test/api/peer.transactions.stress.js
- TEST=test/api/peer.transactions.votes.js
- TEST=test/api/delegates.js
- TEST=test/api/accounts.js
- TEST=test/api/blocks.js
- TEST=test/api/dapps.js
- TEST=test/api/loader.js
- TEST=test/api/multisignatures.js
- TEST=test/api/peer.js
- TEST=test/api/peer.dapp.js
- TEST=test/api/peer.blocks.js
- TEST=test/api/peer.signatures.js
- TEST=test/api/peer.transactions.collision.js
- TEST=test/api/peer.transactions.delegates.js
- TEST=test/api/peer.transactions.main.js
- TEST=test/api/peer.transactions.signatures.js
- TEST=test/api/peers.js
- TEST=test/api/signatures.js
- TEST=test/api/transactions.js
- TEST=test/api/peer.transactions.stress.js TEST_TYPE='FUNC'
- TEST=test/api/peer.transactions.votes.js TEST_TYPE='FUNC'
- TEST=test/api/delegates.js TEST_TYPE='FUNC'
- TEST=test/api/accounts.js TEST_TYPE='FUNC'
- TEST=test/api/blocks.js TEST_TYPE='FUNC'
- TEST=test/api/dapps.js TEST_TYPE='FUNC'
- TEST=test/api/loader.js TEST_TYPE='FUNC'
- TEST=test/api/multisignatures.js TEST_TYPE='FUNC'
- TEST=test/api/peer.js TEST_TYPE='FUNC'
- TEST=test/api/peer.dapp.js TEST_TYPE='FUNC'
- TEST=test/api/peer.blocks.js TEST_TYPE='FUNC'
- TEST=test/api/peer.signatures.js TEST_TYPE='FUNC'
- TEST=test/api/peer.transactions.collision.js TEST_TYPE='FUNC'
- TEST=test/api/peer.transactions.delegates.js TEST_TYPE='FUNC'
- TEST=test/api/peer.transactions.main.js TEST_TYPE='FUNC'
- TEST=test/api/peer.transactions.signatures.js TEST_TYPE='FUNC'
- TEST=test/api/peers.js TEST_TYPE='FUNC'
- TEST=test/api/signatures.js TEST_TYPE='FUNC'
- TEST=test/api/transactions.js TEST_TYPE='FUNC'

- TEST=test/unit/helpers
- TEST=test/unit/logic
- TEST=test/unit/helpers TEST_TYPE='UNIT'
- TEST=test/unit/logic TEST_TYPE='UNIT'
- TEST=test/unit/modules TEST_TYPE='UNIT'
script: 'npm run travis'
after_success:
- bash .travis/after-success.sh $TRAVIS_BUILD_NUMBER ${TRAVIS_JOB_NUMBER#*.} $TEST_TYPE $TRAVIS_BUILD_DIR $TRAVIS_BRANCH $TRAVIS_PULL_REQUEST_BRANCH;
after_failure:
- cat .app.log

19 changes: 19 additions & 0 deletions .travis/after-success.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
#!/usr/bin/env bash

TRAVIS_BUILD_NUMBER=$1
JOB_NUMBER=$2
TEST_TYPE=$3
TRAVIS_BUILD_DIR=$4
TRAVIS_BRANCH=$5
TRAVIS_PULL_REQUEST_BRANCH=$6

if [ ${TEST_TYPE} == "FUNC" ]; then
npm run fetchCoverage;
fi
bash .travis/send-report.sh \
${TRAVIS_BUILD_NUMBER} \
${JOB_NUMBER} \
${TEST_TYPE} \
${TRAVIS_BUILD_DIR} \
${TRAVIS_BRANCH} \
${TRAVIS_PULL_REQUEST_BRANCH};
48 changes: 48 additions & 0 deletions .travis/send-report.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
#!/bin/bash

TRAVIS_BUILD_NUMBER=$1
JOB_NUMBER=$2
TEST_TYPE=$3
TRAVIS_BUILD_DIR=$4
TRAVIS_BRANCH=$5
TRAVIS_PULL_REQUEST_BRANCH=$6

if [ -z ${TRAVIS_BUILD_NUMBER+x} ] || [ -z ${JOB_NUMBER+x} ] || [ -z ${TEST_TYPE+x} ] || \
[ -z ${TRAVIS_BUILD_DIR+x} ] || [ -z ${TRAVIS_BRANCH+x} ] || [ -z ${TRAVIS_PULL_REQUEST_BRANCH+x} ]; then
echo "Provide all script parameters."
exit 1
fi

COVERAGE_DIR=${TRAVIS_BUILD_DIR}/test

if [ ${TEST_TYPE} == "FUNC" ]; then
REPORT_NAME=".coverage-func";
unzip ${COVERAGE_DIR}/.coverage-func.zip -d ${COVERAGE_DIR}/${REPORT_NAME}
else
REPORT_NAME=".coverage-unit";
fi

if [ ! -e ${COVERAGE_DIR}/${REPORT_NAME}/lcov.info ]; then
echo "Cannot find the report at path $COVERAGE_DIR/$REPORT_NAME";
exit 1
fi

if [ -n ${TRAVIS_PULL_REQUEST_BRANCH+x} ] && [ -n ${TRAVIS_PULL_REQUEST_BRANCH} ]; then
BRANCH=${TRAVIS_PULL_REQUEST_BRANCH}
else
BRANCH=${TRAVIS_BRANCH}
fi

COVERALLS_SERVICE_NAME="travis-ci"
COVERALLS_REPO_TOKEN=7s05KDqmPWkwZ6nzU5WtznKkt5FKDE3kv
COVERALLS_PARALLEL=true
COVERALLS_SERVICE_JOB_ID=JOB_NUMBER

yarn global add coveralls
cat ${COVERAGE_DIR}/${REPORT_NAME}/lcov.info | coveralls

if [ -z $? ] || [ $? -eq 1 ]; then
echo ${COVERAGE_DIR}/${REPORT_NAME}/lcov.info "SEND TO COVERALLS"
else
echo "Unable to create reports: " $?
fi
8 changes: 6 additions & 2 deletions Gruntfile.js
Original file line number Diff line number Diff line change
Expand Up @@ -72,11 +72,15 @@ module.exports = function (grunt) {
command: 'cd ' + version_dir + '/ && touch build && echo "v' + today + '" > build'
},
coverage: {
command: 'node_modules/.bin/istanbul cover --dir test/.coverage ./node_modules/.bin/mocha',
command: 'node_modules/.bin/istanbul cover --dir test/.coverage-unit ./node_modules/.bin/_mocha',
maxBuffer: maxBufferSize
},
coverageSingle: {
command: 'node_modules/.bin/istanbul cover --dir test/.$TEST_coverage ./node_modules/.bin/mocha $TEST',
command: 'node_modules/.bin/istanbul cover --dir test/.coverage-unit ./node_modules/.bin/_mocha $TEST',
maxBuffer: maxBufferSize
},
fetchCoverage: {
command: 'rm -rf ./test/.coverage-func.zip; curl -o ./test/.coverage-func.zip $HOST/coverage/download',
maxBuffer: maxBufferSize
}
},
Expand Down
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ Lisk is a next generation crypto-currency and decentralized application platform

[![Join the chat at https://gitter.im/LiskHQ/lisk](https://badges.gitter.im/LiskHQ/lisk.svg)](https://gitter.im/LiskHQ/lisk?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
[![Build Status](https://travis-ci.org/LiskHQ/lisk.svg?branch=development)](https://travis-ci.org/LiskHQ/lisk)
[![Coverage Status](https://coveralls.io/repos/github/LiskHQ/lisk/badge.svg?branch=development)](https://coveralls.io/github/LiskHQ/lisk?branch=development)

**NOTE:** The following information is applicable to: **Ubuntu 14.04 (LTS) - x86_64**.

Expand Down
13 changes: 12 additions & 1 deletion app.js
Original file line number Diff line number Diff line change
Expand Up @@ -78,8 +78,12 @@ if (program.snapshot) {
);
}

if (process.env.NODE_ENV === 'test') {
appConfig.coverage = true;
}

// Define top endpoint availability
process.env.TOP = appConfig.topAccounts;
process.env.TOP = appConfig.topAccounts;

var config = {
db: appConfig.db,
Expand Down Expand Up @@ -192,6 +196,13 @@ d.run(function () {
var cors = require('cors');
var app = express();

if (appConfig.coverage) {
var im = require('istanbul-middleware');
logger.debug('Hook loader for coverage - do not use in production environment!');
im.hookLoader(__dirname);
app.use('/coverage', im.createHandler());
}

require('./helpers/request-limiter')(app, appConfig);

app.use(compression({ level: 9 }));
Expand Down
6 changes: 4 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,8 @@
"scripts": {
"start": "node app.js",
"test": "./node_modules/.bin/grunt test --verbose",
"travis": "./node_modules/.bin/grunt travis --verbose"
"travis": "./node_modules/.bin/grunt travis --verbose",
"fetchCoverage": "./node_modules/.bin/grunt exec:fetchCoverage --verbose"
},
"author": "Boris Povod <boris@crypti.me>, Pavel Nekrasov <landgraf.paul@gmail.com>, Oliver Beddows <oliver@lisk.io>",
"dependencies": {
Expand Down Expand Up @@ -49,9 +50,9 @@
"devDependencies": {
"bitcore-mnemonic": "=1.1.1",
"browserify-bignum": "=1.3.0-2",
"buffer": "=4.9.1",
"chai": "=3.5.0",
"chai-bignumber": "=2.0.0",
"coveralls": "=2.11.16",
"crypto-browserify": "=3.11.0",
"csv": "=1.1.0",
"faker": "=3.1.0",
Expand All @@ -63,6 +64,7 @@
"grunt-jsdox": "=0.1.7",
"grunt-obfuscator": "=0.1.0",
"istanbul": "=0.4.5",
"istanbul-middleware": "=0.2.2",
"jsdox": "=0.4.10",
"jshint": "=2.9.3",
"mocha": "=3.1.0",
Expand Down
2 changes: 1 addition & 1 deletion test/mocha.opts
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,4 @@
--reporter spec
--quiet false
--clearRequireCache false
--noFail false
--noFail false

0 comments on commit 1f66a8f

Please sign in to comment.