Skip to content
/ baseapp Public

The standard beginnings of a NodeJS webapp using Express & (redis, dustjs-linkedin, authentication) with full-on testing and code coverage (grunt, jshint, jasmine, jasmine-node, webdriverjs, istanbul)

Notifications You must be signed in to change notification settings

zzo/baseapp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

46 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

build status

NO MORE EXCUSES!

Start your Express project off right with all testing infrastructure set up for you!

Client-side unit tests?

Server-side unit tests?

Webdriver integration tests?

Code Coverage?

Automation?

Compiled Templates for client-side rendering?

Authentication?

Static Code Analysis?

Continuous Integration?

Check And Mate! IT'S ALL SET UP FOR YOU INCLUDING THE FIRST BATCH OF CLIENT-SIDE AND SERVER-SIDE UNIT TESTS AND WEBDRIVER TESTS - NO EXCUSES!

You've seen other 'getting started' tools that set up HTML5 or CSS or JavaScript but how about all of it including testing, automation, code coverage, static code anaylsis, and authentication all set up and ready to go?

No more having to re-do all this stuff from stratch for each webapp. Start here and you're on your way!

DIRECTIONS

  1. Fork or clone this repo.
  2. Run npm install to grab local copies of all dependencies from npm.
  3. If you don't already have it, install grunt globally sudo npm -g install grunt-cli.
  4. Install redis. If you install from source, be sure to copy redis-server and redis-cli to your $PATH (make install).
  5. Start the redis server using redis-server.
  6. Name your module in package.json.
  7. To run the webdriver tests make sure selenium is started (grunt test will output instructions for this)
  8. Run grunt test to run the full suite of tests!

The TESTING has already been started for you - just write tests THEN code and pound it out!

==========

baseapp uses:

=======

All available grunt tasks:

- jshint - Run jshint on all files
- dustjs - compile all templates (in views/**) and create a single template.js file
- jasmine - Run all client-side unit tests in spec/client/** with code coverage
- jasmine_node_coverage - Run server-side jasmine unit tests in spec/server/** with code coverage
- webdriver_coverage - Run all jasmine webdriver tests in spec/webdriver with code coverage
- webdriver - Run all jasmine webdriver tests in spec/webdriver WITHOUT code coverage
- express - Start your express server (will only run during the lifetime of the grunt process)
- total_coverage - aggragates all coverage info into one mongo report
- plato - run plato report on entire codebase
- watch - Watch all files and run tests accordingly
- test - run:
    - jshint
    - jasmine
    - jasmine_node_coverage
    - webdriver_coverage
    - total_coverage
    - plato

All test and coverage output go to the build/ directory (JUnit XML for all tests and LCOV+HTML for all coverage info)

====

A karma.conf.js file is provided for all the client-side unit-tests if you wanna roll with karma - note 'grunt watch' does the same basic thing...

====

======

let 'er rip!

=====

Todo: Add Uglify/Release grunt targets

About

The standard beginnings of a NodeJS webapp using Express & (redis, dustjs-linkedin, authentication) with full-on testing and code coverage (grunt, jshint, jasmine, jasmine-node, webdriverjs, istanbul)

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published