Ideally this is the following we want to achieve:
- Project setup works flawelessly, when running
divio setup
anddivio run
everything should work (We might also want to test that essentialdivio
api commands are working) - We define a set of "core templates" which are tested agains:
- Screenshot differences when changing code
- HTML Validation and Linting to our coding guidelines
- Common Selenium / JS tests
- We need to find a way to test for checklist issues (missing favicon, robots.txt, analytics...)
- When deploying to develop (or pull request merge) we trigger a deployment to dev which tests the full stack. Here we need some api calls when the tests success to display errors and warnings
- At some point we need to include backend test, specifically addons testing so we ensure apps are working correctly (selenium recording?)
- GruntJS: http://gruntjs.com/ (Gruntfile.js)
- GulpJS: http://gruntjs.com/ (gulpfile.js) (prefered)
- Node: https://npmjs.org/doc/json.html (package.json) (prefered)
- Bower: http://bower.io/ (bower.json)
- Component: http://component.io/ (component.json)
- Brunch: http://brunch.io/ (brunch.js)
- PhantomJS: http://phantomjs.org/ (prefered)
- SlimerJS: http://www.slimerjs.org/
- Karma: http://karma-runner.github.io/0.8/index.html
- BusterJS: http://docs.busterjs.org/en/latest/
- Testem: https://github.com/airportyh/testem
- Testling: http://ci.testling.com/
- QUnit: http://qunitjs.com/
- Jasmine: http://pivotal.github.io/jasmine/ (prefered)
- Mocha: http://visionmedia.github.io/mocha/
- Blanket: http://blanketjs.org/ (coverage)
- Chai: http://chaijs.com/
- Capybara: http://jnicklas.github.io/capybara/
- Preamble: http://jeffschwartz.github.io/preamble/
- FuncUnit: http://funcunit.com/
- Hiro: http://hirojs.com/
- laika: http://arunoda.github.io/laika/
- Travis: http://about.travis-ci.org/docs/user/build-configuration/ (.travis.yml) (prefered)
- Jenkins: http://jenkins-ci.org/
- Bamboo: https://www.atlassian.com/software/bamboo
- CircleCi: https://circleci.com/
- Codeship: https://www.codeship.io/
- Sentry: https://getsentry.com/ (Monitoring)
- Selenium: http://docs.seleniumhq.org/
- CasperJS: http://casperjs.org/
- TestSwarm: http://swarm.jquery.org/ (DCI)
- JSHint: http://www.jshint.com/
- W3C Validator Suite: https://validator-suite.w3.org/
- New Relic: http://www.newrelic.com/
- Sentry: https://getsentry.com/
- Scout: https://scoutapp.com/
- Pingdom: https://www.pingdom.com/
- Datadog: http://www.datadoghq.com/
- Nagios: http://www.nagios.com/
- SauceLabs: http://saucelabs.com/
- TestCafe: http://testcafe.devexpress.com/
- BrowserStack: https://www.browserstack.com/automate (prefered)
- http://martinfowler.com/bliki/TestPyramid.html
- http://staal.io/blog/2013/08/17/incredibly-convenient-testing-of-frontend-javascript-with-node-dot-js/
- http://www.slideshare.net/larsthorup/continuous-integration-for-frontend-javascript
- http://stackoverflow.com/questions/300855/javascript-unit-test-tools-for