Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

phantomjs-test-starter

Package Overview
Dependencies
Maintainers
1
Versions
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

phantomjs-test-starter

Starter Template for testing PhantomJS ‘Applications’ with Jasmine, Grunt, and Istanbul

  • 1.0.0
  • latest
  • Source
  • npm
  • Socket score

Version published
Maintainers
1
Created
Source

phantomjs-test-starter

A boilerplate / starter template for testing PhantomJS ‘Applications’ with Jasmine, Grunt and Istanbul.

There are many resources on how to run tests in PhantomJS, but none on testing Applications written in PhantomJS itself. Non-Trivial Applications such as Data Mining Web Crawlers or Web Page Automation Tools for example.

Conceptually I find it helps to think of PhantomJS as having a server-side and a client-side. The client-side is what happens over in a remote page (inside calls to WebPage.evaluate etc) and the server side is everything else.

This project is concerned with how you test the so-called server side of a PhantomJS Application.

Installation

NPM

npm install phantomjs-test-starter

Git

git clone git@github.com:JamieMason/phantomjs-test-starter.git
cd phantomjs-test-starter
npm install

Global dependencies

Local dependencies are installed by npm install but you will also need $ phantomjs (of course) and npm install -g grunt-cli.

Running tests

Running grunt test will run the tests and generate a coverage report at ./spec/build/reports/index.html.

Writing tests

By optional convention, tests are located at ./spec/unit/ at the same relative path as the file being tested.

For example, tests for the following files:

  • ./src/modules/network/ajax.js
  • ./src/modules/events.js
  • ./src/modules/data/local-storage.js

Would be located at:

  • ./spec/unit/modules/network/ajax.test.js
  • ./spec/unit/modules/events.test.js
  • ./spec/unit/modules/data/local-storage.test.js

Adding new tests

All test files added to ./spec/unit/unit.runner.js will run, (I hope to generate this file to avoid this manual step).

Modified Jasmine 1.3.1

A slightly modified version of jasmine-standalone-1.3.1 is needed as that does not run in PhantomJS (outside of a page.evaluate that is, which is not relevant to our use case).

This is due to a perfectly reasonable assumption that any JavaScript environment will have either module.exports or window and not both — which is the case in PhantomJS.

The core Jasmine library is identical, only how it's exposed has been modified.

.gitignore

They've been left unignored for this example so can see what gets generated during tests, but in a real application you will want to ignore:

  • coverage-reporter.json
  • spec/build

Contributing

Please fork and pull request or raise an issue if you can help improve this resource in any way.

Keywords

FAQs

Package last updated on 26 Nov 2013

Did you know?

Socket

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.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc