h2non/apitance

View on GitHub
Makefile

Summary

Maintainability
Test Coverage
STUBBY = ./node_modules/.bin/stubby
CUCUMBER = ./node_modules/.bin/cucumber
MOCHA = ./node_modules/.bin/mocha
TRACEUR = ./node_modules/.bin/traceur
NAR = ./node_modules/.bin/nar
APITANCE = ./bin/apitance

define concat-mocks
    node -e "\
    var concat = require('concat-files'); \
     concat([ \
        'test/mocks/json_schema.yaml', \
        'test/mocks/misc.yaml', \
    ], 'test/mocks/all.yaml')"
endef

default: all
all: test
test: mocha test-acceptance
test-unit: mocha
test-acceptance: mock-server-stop concat mock-server apitance mock-server-stop

concat:
    @$(call concat-mocks)

mkdir:
    mkdir src
    mkdir src/support
    mkdir src/steps

clean:
    rm -rf src

copy:
    cp ./node_modules/traceur/bin/traceur-runtime.js src/traceur-runtime.js

mocha:
    $(MOCHA) --harmony --timeout 2000 --reporter spec --ui tdd --compilers js:mocha-traceur

apitance:
    $(APITANCE) -r features/step_definitions --tags ~@fail

apitance-all: apitance
    @-$(APITANCE) -r features/step_definitions --tags @fail

compile: clean mkdir copy
    $(TRACEUR) --modules=commonjs --require=true --module=lib/index.js --out src/index.js
    $(TRACEUR) --modules=commonjs --require=true --module=lib/client.js --out src/client.js
    $(TRACEUR) --modules=commonjs --require=true --module=lib/cli.js --out src/cli.js
    $(TRACEUR) --modules=commonjs --require=true --module=lib/apitance.js --out src/apitance.js
    $(TRACEUR) --modules=commonjs --require=true --module=lib/template.js --out src/template.js
    $(TRACEUR) --modules=commonjs --require=true --module=lib/store.js --out src/store.js
    $(TRACEUR) --modules=commonjs --require=true --module=lib/steps/request.js --out src/steps/request.js
    $(TRACEUR) --modules=commonjs --require=true --module=lib/steps/expectations.js --out src/steps/expectations.js
    $(TRACEUR) --modules=commonjs --require=true --module=lib/steps/templating.js --out src/steps/templating.js
    $(TRACEUR) --modules=commonjs --require=true --module=lib/steps/definitions.js --out src/steps/definitions.js
    $(TRACEUR) --modules=commonjs --require=true --module=lib/steps/configuration.js --out src/steps/configuration.js
    $(TRACEUR) --modules=commonjs --require=true --module=lib/steps/helpers.js --out src/steps/helpers.js
    $(TRACEUR) --modules=commonjs --require=true --module=lib/steps/steps.js --out src/steps/steps.js
    $(TRACEUR) --modules=commonjs --require=true --module=lib/support/world.js --out src/support/world.js
    $(TRACEUR) --modules=commonjs --require=true --module=lib/support/hooks.js --out src/support/hooks.js

mock-server:
    $(STUBBY) -d ./test/mocks/all.yaml > /dev/null & echo $$! > .server.pid

mock-server-stop:
    [ -f .server.pid ] && kill -9 `cat .server.pid | head -n 1` && rm -f .server.pid || exit 0

release:
    @$(call release,patch)

release-minor:
    @$(call release,minor)

nar:
    $(NAR) create -e --os linux
    $(NAR) create -e --os darwin

push-doc:
    relish push h2non/apitance

publish: test
    git push --tags origin HEAD:master
    npm publish

loc:
    wc -l lib/*