Skip to content

Commit

Permalink
Add code coverage with istanbul and coveralls
Browse files Browse the repository at this point in the history
  • Loading branch information
ausi committed Aug 26, 2015
1 parent 4eeec32 commit f4ecba9
Show file tree
Hide file tree
Showing 5 changed files with 33 additions and 4 deletions.
1 change: 1 addition & 0 deletions .gitignore
@@ -1,3 +1,4 @@
/cq-prolyfill.min.js
/node_modules/
/tests/
/coverage/
2 changes: 1 addition & 1 deletion .travis.yml
Expand Up @@ -4,7 +4,7 @@ before_script:
- "export DISPLAY=:99.0"
- "sh -e /etc/init.d/xvfb start"
script:
- make test && ./node_modules/.bin/browserstack-runner
- make test && make browserstack && cat ./coverage/lcov.info | ./node_modules/.bin/coveralls
env:
global:
- secure: bUyIN5cHVHRnihJw4z84nKhpp8LRy1WwqdI1n134HHZ1UnS52t0XfNRiO0iwmJmyT5TeHXqNEKN6IpvWUAdM8his2bvoAurNdoH3BELFXWz66esw/dNpl9pUy/mEgTsLnzCIIUcvIdVz6iSeH4aiBzImbuKS9JT2zzLZaSCpoKeNitRTHpuYd1wSaNmaNkdB6u5oy+YV1snzJuFQ4JetezmfZy4pEYrPYdxwh7YTigqQhRchoBvhHVRtyIxRjp9GNl5cITtYOejfMa2zuj6ISoDg04QslS3XQVX6MEUmTzlQBwZYBWFIbfOzkgdxk3wVXwi1QsgQEKN4781VJ3PrYpgxzCSRRpHfftCoWnhlunS953KGjqcf85MhcF/jZpKpM6LT5j2b52c2VJvSR2H2G/5NTGCBEdM+NUlQblHzqfGl/Iz0fYAhHuEDq3KiOPt7WCCfcu4YeLcih2MGsllnRJx4lrTisVtMTk1EZMaqnH0ChHbPX/Yo34VWoD0ByfGBhEFtgR5QbOYOTXldjq2BZKKEi1uA/bKA0Ey4Q9Q0xCfPc1VfD/8cAQooHTA5ta8C3w1/sxr7jNRX72c9C/JBL532BI0Gdng8PAl9Qvgj6xSmmPcXK5KWfmtAo/BIVwUtswk6WsmnHI7kfvAQv5CnpH9Azup9fO0jlCLCcjbhIH8=
Expand Down
21 changes: 18 additions & 3 deletions Makefile
Expand Up @@ -3,6 +3,7 @@ BIN = $(MODULES)/.bin
UGLIFY = $(BIN)/uglifyjs
UGLIFY_OPTS = --compress=unsafe,pure_getters --mangle --mangle-props --mangle-regex="/^_/" --screw-ie8
ESLINT = $(BIN)/eslint
ISTANBUL = $(BIN)/istanbul
SOURCE = cq-prolyfill.js
TARGET = $(SOURCE:%.js=%.min.js)
TESTS = tests.js
Expand All @@ -15,6 +16,7 @@ TEST_HTML_FUNCTIONAL = tests/functional.html
SLIMERJS = $(BIN)/slimerjs
PHANTOMJS_RUNNER = $(MODULES)/qunit-phantomjs-runner/runner.js
TEST_RUNNER = tests/slimerjs-runner.js
BROWSERSTACK_RUNNER = $(BIN)/browserstack-runner

all: $(TARGET)

Expand All @@ -31,6 +33,9 @@ $(UGLIFY): $(MODULES)
$(ESLINT): $(MODULES)
touch $@

$(ISTANBUL): $(MODULES)
touch $@

$(QUNIT_JS): $(MODULES)
touch $@

Expand All @@ -43,6 +48,9 @@ $(SLIMERJS): $(MODULES)
$(PHANTOMJS_RUNNER): $(MODULES)
touch $@

$(BROWSERSTACK_RUNNER): $(MODULES)
touch $@

.PHONY: test
test: $(ESLINT) $(SOURCE) $(TARGET) $(TEST_RUNNER) $(SLIMERJS) $(TEST_HTML) $(TEST_HTML_FUNCTIONAL) $(MODULES)
$(ESLINT) $(SOURCE)
Expand All @@ -61,7 +69,7 @@ test: $(ESLINT) $(SOURCE) $(TARGET) $(TEST_RUNNER) $(SLIMERJS) $(TEST_HTML) $(TE
watch:
while true; do (make || make -t) | grep -v "Nothing to be done"; sleep 1; done

$(TEST_HTML): $(TESTS) $(TESTS_FUNCTIONAL) $(SOURCE) $(QUNIT_JS) $(QUNIT_CSS)
$(TEST_HTML): $(TESTS) $(TESTS_FUNCTIONAL) $(SOURCE) $(QUNIT_JS) $(QUNIT_CSS) $(ISTANBUL)
mkdir -p tests
echo '<!doctype html>' > $@
echo '<html><head>' >> $@
Expand All @@ -72,10 +80,10 @@ $(TEST_HTML): $(TESTS) $(TESTS_FUNCTIONAL) $(SOURCE) $(QUNIT_JS) $(QUNIT_CSS)
echo '<div id="qunit-fixture"></div>' >> $@
echo '<script src="../$(QUNIT_JS)"></script>' >> $@
echo '<script>' >> $@
cat $(SOURCE) | grep -v '})(window, document);' >> $@
$(ISTANBUL) instrument $(SOURCE) | replace '}(window,document));' '' >> $@
cat $< >> $@
cat $(TESTS_FUNCTIONAL) >> $@
cat $(SOURCE) | grep '})(window, document);' >> $@
echo '}(window,document));' >> $@
echo '</script>' >> $@
echo '</body></html>' >> $@
rm -rf tests/test-files
Expand Down Expand Up @@ -106,3 +114,10 @@ clean:
rm -f $(TARGET)
rm -fr tests
rm -fr $(MODULES)

.PHONY: browserstack
browserstack: $(BROWSERSTACK_RUNNER) $(ISTANBUL) $(TEST_HTML) $(TEST_HTML_FUNCTIONAL)
$(BROWSERSTACK_RUNNER) | tee tests/browserstack.log | grep -v '] coverage: {'
rm -f tests/coverage-*
cat tests/browserstack.log | grep '] coverage: {' | sed 's/^.*] coverage: //g' | split -l 1 - tests/coverage-
$(ISTANBUL) report --include 'tests/coverage-*' text-summary html lcovonly
2 changes: 2 additions & 0 deletions package.json
Expand Up @@ -5,7 +5,9 @@
"devDependencies": {
"browserstack-runner": "^0.3.7",
"connect": "^3.4.0",
"coveralls": "^2.11.4",
"eslint": "^0.24.1",
"istanbul": "^0.3.18",
"qunit-phantomjs-runner": "^2.1.0",
"qunitjs": "^1.18.0",
"serve-static": "^1.10.0",
Expand Down
11 changes: 11 additions & 0 deletions tests.js
Expand Up @@ -2,6 +2,17 @@
(function() {
'use strict';

QUnit.module('All', {
afterEach: function(assert) {
if (window.BrowserStack && QUnit.config.queue.length < 5) {
var done = assert.async();
window.BrowserStack.post('/_log', 'coverage: ' + JSON.stringify(window.__coverage__), function() {
done();
});
}
},
});

var fixture = document.getElementById('qunit-fixture');
var TEST_FILES_URL = 'http://cdn.rawgit.com/ausi/cq-prolyfill/78569ef/test-files/';
var TEST_FILES_PATH = 'test-files/';
Expand Down

0 comments on commit f4ecba9

Please sign in to comment.