Test First Test First Test
Run with NodeJs v4 or v5
Download it ! or Clone it ! or Fork it ! or ...
Then Install it, Start it, Test it, Browse it, Containerize it ...
TFTFT ExpressJs - TFTFT AngularJs :
npm install
- ExpressJs dependencies : body-parser - cookie-parser - debug - express - jade - morgan - serve-favicon
- Bower dependencies : bower - bower-requirejs
bower install
is called innpm postinstall
AngularJs - RequireJs - BootstrapCssbower-requirejs
is called inbower postinstall
(see .bowerrc) to generate main requirejs file
- md-mailgun : my dependency to send me a mail with mailgun
npm start
Start ExpressJs server and listen to http://localhost:3000
to serve api and static files.
TFTFT Test :
npm test
Mocha runner with config (test/**/*.js
) and Istanbul auto-instrumented coverage/report
TFTFT Unit Test : mocha
TFTFT Route Test : supertest
TFTFT Coverage Test : istanbul
TFTFT Specification Test : selenium-webdriver in folder 'test/spec/'
Note for Specification Test :
Selenium Server : Local or Remote ? ... Up to Developer !
Default to Remote for the needs of this repo : saucelabs instrumented in tests with TravisCI configuration.For local or remote :
Intest/spec/test-wdjs-spec.js
changevar isLocalSeleniumServer = false;
Local Selenium Server :
- Change config with :
var option_local = { server: 'http://127.0.0.1:4444/wd/hub', desiredCapabilities: { browserName: 'firefox' }, baseUrl:'http://localhost:3000' };
- Start a local selenium server
/*Example with selenium-standalone (not include in this package)*/ npm install selenium-standalone; ./node_modules/.bin/selenium-standalone install; ./node_modules/.bin/selenium-standalone start;
Remote Selenium Server with SauceLabs :
For Travis :
Intest/spec/test-wdjs-spec.js
changevar travis = true;
- With Travis environnement
var travis = true;
(default) :
Config intest/spec/option-travis-sauce.js
:
SAUCE_USERNAME=[secure] and SAUCE_ACCESS_KEY=[secure] must be set in Travis env variable TRAVIS_JOB_NUMBER, TRAVIS_BUILD_NUMBER are automatically set by Travis _BROWSER, _PLATFORM, _VERSION are define in .travis.yml matrix
- Without Travis environnement
var travis = false;
:
Config intest/spec/option-sauce.js
:
In local environnement : $ export SAUCE_USERNAME=[secure] $ export SAUCE_ACCESS_KEY=[secure]
Change baseUrl to address app in a cloud developpement environnement
For this repo,baseUrl:'https://tftft-misterdevo.c9users.io'
on Cloud9- With Travis environnement
TFTFT Resources
For app example : Coverage reports + saucelabs matrix + test reports with mochawesome
npm run app-resources
Istanbul auto-instrumented coverage/report - Mocha runner with default config (test/unit/*.js test/route/*.js
) for :
- TFTFT Test reporter mochawesome ('one by one' in
public/report
) - TFTFT Istanbul Coverage Test Report in
public/cov
- TFTFT Saucelabs matrix : download the last remote tests badge to
public/images/misterdevo.svg