.PHONY: help test test-types check-cover view-cover npm-test travis-test clean BIN = ./node_modules/.bin # Determine reporter reporter=tap ifdef npm_config_dot reporter=dot endif ifdef npm_config_spec reporter=spec endif all: help help: @echo @echo "To run tests:" @echo " npm test [--dot | --spec] [--coverage | --grep=]" @echo lint: @$(BIN)/jshint . test: node_modules $(if $(npm_config_grep), @echo "Running test files that match pattern: $(npm_config_grep)\n",) $(if $(filter tap, $(reporter)), @find ./test -maxdepth 1 -name "*.js" -type f | grep ""$(npm_config_grep) | xargs $(BIN)/istanbul cover --report lcovonly --print none $(BIN)/tape --) $(if $(filter dot, $(reporter)), @find ./test -maxdepth 1 -name "*.js" -type f | grep ""$(npm_config_grep) | xargs $(BIN)/istanbul cover --report lcovonly --print none $(BIN)/tape -- | $(BIN)/tap-dot) $(if $(filter spec, $(reporter)), @find ./test -maxdepth 1 -name "*.js" -type f | grep ""$(npm_config_grep) | xargs $(BIN)/istanbul cover --report lcovonly --print none $(BIN)/tape -- | $(BIN)/tap-spec) ifdef npm_config_coverage @echo @$(BIN)/istanbul report text | grep -v "Using reporter" | grep -v "Done" endif @$(BIN)/istanbul report html > /dev/null test-types: node_modules @echo 'Running types tests (via tsd)' @$(BIN)/tsd npm-test: lint test check-cover test-types travis-test: npm-test @(cat coverage/lcov.info | coveralls) || exit 0 check-cover: coverage @rm -f coverage/error @$(BIN)/istanbul check-coverage --statements 100 --branches 100 --functions 100 --lines 100 2>&1 | cat > coverage/error $(if $(npm_config_grep),,@if [ -s coverage/error ]; then echo; grep ERROR coverage/error; echo; exit 1; fi) view-cover: coverage @$(BIN)/opn coverage/index.html coverage: @make test node_modules: @echo '# *** running "npm install" for you ***' @npm install @mkdir -p node_modules @touch node_modules clean: @rm -rf node_modules coverage