diff --git a/.gitignore b/.gitignore index b86ab6fc..b9b8db0e 100644 --- a/.gitignore +++ b/.gitignore @@ -7,3 +7,4 @@ tmp/**/* *.sublime-* _site dist/*.js +coverage/ diff --git a/build/build.js b/build/build.js index d455d467..15d0ace6 100644 --- a/build/build.js +++ b/build/build.js @@ -158,11 +158,24 @@ exports.build = function (compsBase32, buildName) { exports.test = function() { var testacular = require('testacular'), testConfig = {configFile : __dirname + '/../spec/testacular.conf.js'}; - + testConfig.browsers = ['PhantomJS']; isArgv('--chrome') && testConfig.browsers.push('Chrome'); isArgv('--ff') && testConfig.browsers.push('Firefox'); - + + // will work only with new testacular that supports code coverage (today it's in master) + if (isArgv('--cov')) { // temporary hack until testacular with coverage becomes stable + testacular = require('../node_modules/testacular/lib/index.js'); // use local testacular + testConfig.preprocessors = { + '**/src/**/*.js': 'coverage', + }; + testConfig.coverageReporter = { + type : 'html', + dir : 'coverage/' + }; + testConfig.reporters = ['coverage']; + } + testacular.server.start(testConfig); function isArgv(optName){ diff --git a/package.json b/package.json index 8c58c7d0..76b02697 100644 --- a/package.json +++ b/package.json @@ -4,7 +4,7 @@ "description": "JavaScript library for mobile-friendly interactive maps", "dependencies": { "jshint": "~0.9.1", - "testacular": "~0.4.0", + "testacular": "latest", "uglify-js": "~2.2.3", "jake": "latest" }, diff --git a/spec/testacular.conf.js b/spec/testacular.conf.js index e7a69001..1217d0d8 100644 --- a/spec/testacular.conf.js +++ b/spec/testacular.conf.js @@ -1,5 +1,4 @@ // Testacular configuration - var libSources = require(__dirname+'/../build/build.js').getFiles(); // base path, that will be used to resolve files and exclude @@ -11,36 +10,18 @@ for (var i=0; i < libSources.length; i++) { // list of files / patterns to load in the browser files = [].concat([ - JASMINE, - JASMINE_ADAPTER, - "before.js" - ], libSources, [ - "after.js", - "happen.js", - "suites/SpecHelper.js", - "suites/LeafletSpec.js", - "suites/control/Control.LayersSpec.js", - "suites/control/Control.ScaleSpec.js", - "suites/core/UtilSpec.js", - "suites/core/ClassSpec.js", - "suites/core/EventsSpec.js", - "suites/geometry/PointSpec.js", - "suites/geometry/BoundsSpec.js", - "suites/geometry/TransformationSpec.js", - "suites/geo/LatLngSpec.js", - "suites/geo/LatLngBoundsSpec.js", - "suites/geo/ProjectionSpec.js", - "suites/dom/DomEventSpec.js", - "suites/dom/DomUtilSpec.js", - "suites/layer/TileLayerSpec.js", - "suites/layer/vector/CircleSpec.js", - "suites/layer/vector/CircleMarkerSpec.js", - "suites/layer/vector/PolylineGeometrySpec.js", - "suites/map/MapSpec.js" - ]); + JASMINE, + JASMINE_ADAPTER, + "before.js" +], libSources, [ + "after.js", + "happen.js", + "suites/SpecHelper.js", + "suites/**/*.js" +]); // list of files to exclude -exclude = [ +exclude = [ ]; // test results reporter to use