Run tests with Karma test runner

Closes gh-566.
This commit is contained in:
Nik Butenko
2016-06-16 21:35:03 +10:00
committed by Fagner Brack
parent 967017115b
commit 2c27f31263
5 changed files with 77 additions and 25 deletions

View File

@@ -1,4 +1,7 @@
{
"globals": {
"module": true
},
"boss": true,
"curly": true,
"eqeqeq": true,

55
karma.conf.js Normal file
View File

@@ -0,0 +1,55 @@
module.exports = function( config ) {
config.set( {
// Base path, that will be used to resolve files and exclude
basePath: "",
// Frameworks to use
frameworks: [ "qunit" ],
// List of files / patterns to load in the browser
files: [
"test/bootstrap.js",
"js/impress.js",
"test/core_tests.js"
],
// List of files to exclude
exclude: [],
// Test results reporter to use
// possible values: 'dots', 'progress', 'junit', 'growl', 'coverage'
reporters: [ "progress" ],
// Web server port
port: 9876,
// Enable / disable colors in the output (reporters and logs)
colors: true,
// Level of logging
// possible values: config.LOG_DISABLE || config.LOG_ERROR ||
// config.LOG_WARN || config.LOG_INFO || config.LOG_DEBUG
logLevel: config.LOG_DEBUG,
// Enable / disable watching file and executing tests whenever any file changes
autoWatch: true,
// Start these browsers, currently available:
// - Chrome
// - ChromeCanary
// - Firefox
// - Opera (has to be installed with `npm install karma-opera-launcher`)
// - Safari (only Mac; has to be installed with `npm install karma-safari-launcher`)
// - PhantomJS
// - IE (only Windows; has to be installed with `npm install karma-ie-launcher`)
browsers: [ "Chrome" ],
// If browser does not capture in given timeout [ms], kill it
captureTimeout: 60000,
// Continuous Integration mode
// if true, it capture browsers, run tests and exit
singleRun: false
} );
};

View File

@@ -22,13 +22,18 @@
"url": "https://github.com/bartaz/impress.js/issues"
},
"scripts": {
"lint": "jshint js/impress.js && jscs js/impress.js --preset=jquery",
"test": "chrome test/core_tests.html"
"lint": "jshint js/impress.js *.js test/bootstrap.js && jscs js/impress.js *.js test/bootstrap.js --preset=jquery",
"test": "karma start --single-run",
"test:dev": "karma start"
},
"devDependencies": {
"chrome": "0.1.0",
"jscs": "2.11.0",
"jshint": "2.9.1",
"karma": "0.13.22",
"karma-chrome-launcher": "1.0.1",
"karma-cli": "1.0.0",
"karma-qunit": "1.0.0",
"qunitjs": "2.0.0-rc1"
}
}

12
test/bootstrap.js vendored Normal file
View File

@@ -0,0 +1,12 @@
/*jshint browser:true */
var root = document.createElement( "div" );
root.innerHTML = [
"<div id='impress'>",
" <div class='step' data-x='-1000' data-y='0'>First slide</div>",
" <div class='step' data-x='-800' data-y='0'>Second slide</div>",
" <div class='step' data-x='-600' data-y='0'>Third slide</div>",
" <div class='step' data-x='-400' data-y='0'>Fourth slide</div>",
"</div>"
].join( "" );
document.body.appendChild( root );

View File

@@ -1,23 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Core Tests</title>
<link rel="stylesheet" href="../node_modules/qunitjs/qunit/qunit.css">
</head>
<body>
<div id="impress">
<div class="step" data-x="-1000" data-y="0">First slide</div>
<div class="step" data-x="-800" data-y="0">Second slide</div>
<div class="step" data-x="-600" data-y="0">Third slide</div>
<div class="step" data-x="-400" data-y="0">Fourth slide</div>
</div>
<div id="qunit"></div>
<script src="../js/impress.js"></script>
<script src="../node_modules/qunitjs/qunit/qunit.js"></script>
<script src="core_tests.js"></script>
</body>
</html>