![PyPI Now Supports iOS and Android Wheels for Mobile Python Development](https://cdn.sanity.io/images/cgdhsj6q/production/96416c872705517a6a65ad9646ce3e7caef623a0-1024x1024.webp?w=400&fit=max&auto=format)
Security News
PyPI Now Supports iOS and Android Wheels for Mobile Python Development
PyPI now supports iOS and Android wheels, making it easier for Python developers to distribute mobile packages.
gulp-jasmine-browser
Advanced tools
Run jasmine tests in a browser or headless browser using gulp.
Run jasmine tests in a browser or headless browser using gulp.
gulp-jasmine-browser
is available as an
npm package.
Gulp Jasmine Browser currently works with any synchronous method of loading files. The beginning examples all assume basic script loading. If you are using CommonJS to load files, you may want to skip to Usage with Webpack
In gulpfile.js
var gulp = require('gulp');
var jasmineBrowser = require('gulp-jasmine-browser');
gulp.task('jasmine', function() {
return gulp.src(['src/**/*.js', 'spec/**/*_spec.js'])
.pipe(jasmineBrowser.specRunner())
.pipe(jasmineBrowser.server({port: 8888}));
});
In gulp.src
include all files you need for testing other than jasmine itself.
This should include your spec files, and may also include your production JavaScript and
CSS files.
The jasmine server will run on the port
given to server
, or will default to port 8888.
To have the server automatically refresh when files change, you will want something like gulp-watch.
var gulp = require('gulp');
var jasmineBrowser = require('gulp-jasmine-browser');
var watch = require('gulp-watch');
gulp.task('jasmine', function() {
var filesForTest = ['src/**/*.js', 'spec/**/*_spec.js'];
return gulp.src(filesForTest)
.pipe(watch(filesForTest))
.pipe(jasmineBrowser.specRunner())
.pipe(jasmineBrowser.server({port: 8888}));
});
If you are using Webpack or Browserify, you may want to use their watching mechanisms instead of this example.
In gulpfile.js
For Headless Chrome
var gulp = require('gulp');
var jasmineBrowser = require('gulp-jasmine-browser');
gulp.task('jasmine-chrome', function() {
return gulp.src(['src/**/*.js', 'spec/**/*_spec.js'])
.pipe(jasmineBrowser.specRunner({console: true}))
.pipe(jasmineBrowser.headless({driver: 'chrome'}));
});
To use this driver, puppeteer must be installed in your project.
For PhantomJs
var gulp = require('gulp');
var jasmineBrowser = require('gulp-jasmine-browser');
gulp.task('jasmine-phantom', function() {
return gulp.src(['src/**/*.js', 'spec/**/*_spec.js'])
.pipe(jasmineBrowser.specRunner({console: true}))
.pipe(jasmineBrowser.headless({driver: 'phantomjs'}));
});
To use this driver, the PhantomJS npm package must be installed in your project.
GulpJasmineBrowser assumes that if the package is not installed phantomjs
is already installed and in your path.
It is only tested with PhantomJS 2.
For SlimerJs
var gulp = require('gulp');
var jasmineBrowser = require('gulp-jasmine-browser');
gulp.task('jasmine-slimer', function() {
return gulp.src(['src/**/*.js', 'spec/**/*_spec.js'])
.pipe(jasmineBrowser.specRunner({console: true}))
.pipe(jasmineBrowser.headless({driver: 'slimerjs'}));
});
To use this driver, the SlimerJS npm package must be installed in your project.
Note the {console: true}
passed into specRunner.
If you would like to compile your front end assets with Webpack, for example to use commonjs style require statements, you can pipe the compiled assets into GulpJasmineBrowser.
In gulpfile.js
var gulp = require('gulp');
var jasmineBrowser = require('gulp-jasmine-browser');
var webpack = require('webpack-stream');
gulp.task('jasmine', function() {
return gulp.src(['spec/**/*_spec.js'])
.pipe(webpack({watch: true, output: {filename: 'spec.js'}}))
.pipe(jasmineBrowser.specRunner())
.pipe(jasmineBrowser.server());
});
When using webpack, it is helpful to delay the jasmine server when the webpack bundle becomes invalid (to prevent serving javascript that is out of date). Adding the plugin to your webpack configuration, and adding the whenReady function to the server configuration enables this behavior.
var gulp = require('gulp');
var jasmineBrowser = require('gulp-jasmine-browser');
var webpack = require('webpack-stream');
gulp.task('jasmine', function() {
var JasminePlugin = require('gulp-jasmine-browser/webpack/jasmine-plugin');
var plugin = new JasminePlugin();
return gulp.src(['spec/**/*_spec.js'])
.pipe(webpack({watch: true, output: {filename: 'spec.js'}, plugins: [plugin]}))
.pipe(jasmineBrowser.specRunner())
.pipe(jasmineBrowser.server({whenReady: plugin.whenReady}));
});
Generates a console reporter for the spec runner that should be used with a headless browser.
Prints out timing information for your slowest specs after Jasmine is done. If used in the browser, this will print into the developer console. In headless mode, this will print to the terminal.
If true, the headless server catches exceptions raised while running tests
Sets the driver used by the headless server
To force the headless port to use a specific port you can pass an option to the headless configuration so it does not search for an open port.
gulp.task('jasmine', function() {
var port = 8080;
return gulp.src(['spec/**/*_spec.js'])
.pipe(jasmineBrowser.specRunner())
.pipe(jasmineBrowser.headless({port: 8080, findOpenPort: false}));
});
Called with the __coverage__
from the browser, can be used with code coverage like istanbul
Sets the port for the server
If true, the headless server runs the tests in random order
Provide a custom reporter for the output, defaults to the jasmine terminal reporter.
Sets the randomization seed if randomization is turned on
EXPERIMENTAL asynchronously loads the sourcemapped stacktraces for better stacktraces in chrome and firefox.
Only runs specs that match the given string
If true, the headless server fails tests on the first failed expectation
The application requires the following external dependencies:
The rest of the dependencies are handled through:
npm install
Run tests with:
npm test
Note: npm test
need a webdriver server up and running. An easy way of accomplish that is by using webdriver-manager
:
npm install --global webdriver-manager
webdriver-manager update
webdriver-manager start
(c) Copyright 2016 Pivotal Software, Inc. All Rights Reserved.
FAQs
Run jasmine tests in a browser or headless browser using gulp.
The npm package gulp-jasmine-browser receives a total of 443 weekly downloads. As such, gulp-jasmine-browser popularity was classified as not popular.
We found that gulp-jasmine-browser demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 6 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
PyPI now supports iOS and Android wheels, making it easier for Python developers to distribute mobile packages.
Security News
Create React App is officially deprecated due to React 19 issues and lack of maintenance—developers should switch to Vite or other modern alternatives.
Security News
Oracle seeks to dismiss fraud claims in the JavaScript trademark dispute, delaying the case and avoiding questions about its right to the name.