SlideShare una empresa de Scribd logo
1 de 37
Descargar para leer sin conexión
Le javascript
Un ami du php souvent délaissé lors des tests
PHP’tit Déj
«Intégration Continue»
16.05.2013 - Luxembourg
mercredi 22 mai 13
Présentation
Frédéric Dewinne
= Consultant @ VA Consulting
= Architecte logiciel, formateur, coach
= Expert PHP / JS depuis 2007
mercredi 22 mai 13
Le javascript
mercredi 22 mai 13
Le javascript
≠ langage de présentation
mercredi 22 mai 13
Le javascript
≠ langage de présentation
= langage de programmation
mercredi 22 mai 13
Le javascript
≠ langage de présentation
= langage de programmation
= langage événementiel
mercredi 22 mai 13
Le javascript
≠ langage de présentation
= langage de programmation
= langage événementiel
= s’exécute sur un client, un serveur ou isolé
(applications Windows 8)
mercredi 22 mai 13
Le javascript
≠ langage de présentation
= langage de programmation
= langage événementiel
= s’exécute sur un client, un serveur ou isolé
(applications Windows 8)
mercredi 22 mai 13
Problématique dans le cadre d’un site web
mercredi 22 mai 13
Problématique dans le cadre d’un site web
= le client utilisé
(OS, type et version de navigateur, ...)
mercredi 22 mai 13
Problématique dans le cadre d’un site web
= le client utilisé
(OS, type et version de navigateur, ...)
= la testabilité du code
mercredi 22 mai 13
Problématique dans le cadre d’un site web
= le client utilisé
(OS, type et version de navigateur, ...)
= la testabilité du code
= la détection des erreurs
mercredi 22 mai 13
Comment procéder dès lors ?
mercredi 22 mai 13
Comment procéder dès lors ?
= écrire du code réutilisable
plugins, widgets, prototypes, ...
mercredi 22 mai 13
Comment procéder dès lors ?
= écrire du code réutilisable
plugins, widgets, prototypes, ...
= et testable
Test Driven Development (TDD)
mercredi 22 mai 13
Comment procéder dès lors ?
= écrire du code réutilisable
plugins, widgets, prototypes, ...
= et testable
Test Driven Development (TDD)
= tester le code sur différents clients
mercredi 22 mai 13
JsTestDriver
mercredi 22 mai 13
JsTestDriver
= initié par Google
mercredi 22 mai 13
JsTestDriver
= initié par Google
= framework de test
mercredi 22 mai 13
JsTestDriver
= initié par Google
= framework de test
= support d’autres frameworks de test
mercredi 22 mai 13
JsTestDriver
= initié par Google
= framework de test
= support d’autres frameworks de test
= serveur http pour une exécution client / serveur
mercredi 22 mai 13
JsTestDriver
= initié par Google
= framework de test
= support d’autres frameworks de test
= serveur http pour une exécution client / serveur
= proxy web pour les dépendances
mercredi 22 mai 13
JsTestDriver
= initié par Google
= framework de test
= support d’autres frameworks de test
= serveur http pour une exécution client / serveur
= proxy web pour les dépendances
= exécutable en ligne de commande
mercredi 22 mai 13
JsTestDriver
= initié par Google
= framework de test
= support d’autres frameworks de test
= serveur http pour une exécution client / serveur
= proxy web pour les dépendances
= exécutable en ligne de commande
= plugins pour IDE
mercredi 22 mai 13
JsTestDriver
= initié par Google
= framework de test
= support d’autres frameworks de test
= serveur http pour une exécution client / serveur
= proxy web pour les dépendances
= exécutable en ligne de commande
= plugins pour IDE
= plugin de code coverage
mercredi 22 mai 13
Exemple
TestCase('form-collection-test', {
"test add fieldset on add button click": function () {
/*:DOC collection = <div><fieldset><input name="toto[0]" /></fieldset></div>*/
/*:DOC addButton = <button></button>*/
$(this.collection).formCollection({
addButtonSelector: this.addButton,
template: '<fieldset><input name="toto[__index__]" /></fieldset>',
childrenSelector: 'fieldset'
});
$(this.addButton).click();
assertEquals(2, $(this.collection).find('fieldset').length);
}
});
mercredi 22 mai 13
mercredi 22 mai 13
Et ensuite ?
mercredi 22 mai 13
Et ensuite ?
= exécuter les tests de manière automatique
mercredi 22 mai 13
Jenkins
mercredi 22 mai 13
Jenkins
= démarrage du serveur
mercredi 22 mai 13
Jenkins
= démarrage du serveur
= gestion des browsers
mercredi 22 mai 13
Jenkins
= démarrage du serveur
= gestion des browsers
= aggrégation des résultats de tests
mercredi 22 mai 13
Jenkins
= démarrage du serveur
= gestion des browsers
= aggrégation des résultats de tests
= analyse du code coverage
mercredi 22 mai 13
Résultats
mercredi 22 mai 13
Des questions ?
mercredi 22 mai 13
Merci
Frédéric Dewinne
twitter => @dwebconsulting
email => frederic.dewinne@vaconsulting.lu
mercredi 22 mai 13

Más contenido relacionado

Destacado

JavaScript pour le développeur Java
JavaScript pour le développeur JavaJavaScript pour le développeur Java
JavaScript pour le développeur Javajollivetc
 
Kits formation html-les_bases
Kits formation html-les_basesKits formation html-les_bases
Kits formation html-les_baseskitsformation
 
Trucs et astuces PHP et MySQL
Trucs et astuces PHP et MySQLTrucs et astuces PHP et MySQL
Trucs et astuces PHP et MySQLDamien Seguy
 
Mini projet individuel php
Mini projet individuel phpMini projet individuel php
Mini projet individuel phpKhadim Mbacké
 
Examen principal- php - correction
Examen principal- php - correctionExamen principal- php - correction
Examen principal- php - correctionInes Ouaz
 

Destacado (6)

JavaScript pour le développeur Java
JavaScript pour le développeur JavaJavaScript pour le développeur Java
JavaScript pour le développeur Java
 
Kits formation html-les_bases
Kits formation html-les_basesKits formation html-les_bases
Kits formation html-les_bases
 
Trucs et astuces PHP et MySQL
Trucs et astuces PHP et MySQLTrucs et astuces PHP et MySQL
Trucs et astuces PHP et MySQL
 
Php
PhpPhp
Php
 
Mini projet individuel php
Mini projet individuel phpMini projet individuel php
Mini projet individuel php
 
Examen principal- php - correction
Examen principal- php - correctionExamen principal- php - correction
Examen principal- php - correction
 

Similar a Javascript in a continuous integration environment

Play framework - Human Talks Grenoble - 12.02.2013
Play framework - Human Talks Grenoble - 12.02.2013Play framework - Human Talks Grenoble - 12.02.2013
Play framework - Human Talks Grenoble - 12.02.2013Xavier NOPRE
 
vue j'avais pas vu !!
vue j'avais pas vu !!vue j'avais pas vu !!
vue j'avais pas vu !!Manuel Adele
 
Vue, j’avais pas vu !
Vue, j’avais pas vu !Vue, j’avais pas vu !
Vue, j’avais pas vu !Bruno Bonnin
 
Morning tech #2 - Démarche performance slides
Morning tech #2 - Démarche performance slidesMorning tech #2 - Démarche performance slides
Morning tech #2 - Démarche performance slidesOxalide
 
Oxalide Morning tech #2 - démarche performance
Oxalide Morning tech #2 - démarche performanceOxalide Morning tech #2 - démarche performance
Oxalide Morning tech #2 - démarche performanceLudovic Piot
 
Introduction aux web components
Introduction aux web componentsIntroduction aux web components
Introduction aux web componentsFrancois ANDRE
 
Nouveautés JavaScript dans le monde Microsoft
Nouveautés JavaScript dans le monde MicrosoftNouveautés JavaScript dans le monde Microsoft
Nouveautés JavaScript dans le monde Microsoftdavrous
 
Gitlab CI : Integration et Déploiement Continue
Gitlab CI : Integration et Déploiement ContinueGitlab CI : Integration et Déploiement Continue
Gitlab CI : Integration et Déploiement ContinueVincent Composieux
 
Spécifications de webservices avec un seul outil
Spécifications de webservices avec un seul outilSpécifications de webservices avec un seul outil
Spécifications de webservices avec un seul outilFabernovel
 
Commencer avec le tdd
Commencer avec le tddCommencer avec le tdd
Commencer avec le tddEric Hogue
 
Automatisations des tests fonctionnels avec Robot Framework
Automatisations des tests fonctionnels avec Robot FrameworkAutomatisations des tests fonctionnels avec Robot Framework
Automatisations des tests fonctionnels avec Robot Frameworklaurent bristiel
 
Java 9 modulo les modules devoxx fr 2017
Java 9 modulo les modules devoxx fr 2017Java 9 modulo les modules devoxx fr 2017
Java 9 modulo les modules devoxx fr 2017Jean-Michel Doudoux
 
Symposium n°7 : Plateforme Meteor
Symposium n°7 : Plateforme MeteorSymposium n°7 : Plateforme Meteor
Symposium n°7 : Plateforme MeteorArthurMaroulier
 
Node, Grunt et leurs copains qui font de l’accessibilité tout seuls !
Node, Grunt et leurs copains qui font de l’accessibilité tout seuls !Node, Grunt et leurs copains qui font de l’accessibilité tout seuls !
Node, Grunt et leurs copains qui font de l’accessibilité tout seuls !vincent aniort
 
RefCard Tests sur tous les fronts
RefCard Tests sur tous les frontsRefCard Tests sur tous les fronts
RefCard Tests sur tous les frontsOCTO Technology
 
Introduction à Angularjs
Introduction à AngularjsIntroduction à Angularjs
Introduction à AngularjsRossi Oddet
 
TechDays Montreal WebMatrix, voyez ce que la matrice peut faire pour vous!!
TechDays Montreal  WebMatrix, voyez ce que la matrice peut faire pour vous!!TechDays Montreal  WebMatrix, voyez ce que la matrice peut faire pour vous!!
TechDays Montreal WebMatrix, voyez ce que la matrice peut faire pour vous!!Frédéric Harper
 
Présentation du versioning avec Git
Présentation du versioning avec GitPrésentation du versioning avec Git
Présentation du versioning avec Gitmsadouni
 

Similar a Javascript in a continuous integration environment (20)

Play framework - Human Talks Grenoble - 12.02.2013
Play framework - Human Talks Grenoble - 12.02.2013Play framework - Human Talks Grenoble - 12.02.2013
Play framework - Human Talks Grenoble - 12.02.2013
 
vue j'avais pas vu !!
vue j'avais pas vu !!vue j'avais pas vu !!
vue j'avais pas vu !!
 
Vue, j’avais pas vu !
Vue, j’avais pas vu !Vue, j’avais pas vu !
Vue, j’avais pas vu !
 
Morning tech #2 - Démarche performance slides
Morning tech #2 - Démarche performance slidesMorning tech #2 - Démarche performance slides
Morning tech #2 - Démarche performance slides
 
Oxalide Morning tech #2 - démarche performance
Oxalide Morning tech #2 - démarche performanceOxalide Morning tech #2 - démarche performance
Oxalide Morning tech #2 - démarche performance
 
Introduction aux web components
Introduction aux web componentsIntroduction aux web components
Introduction aux web components
 
Nouveautés JavaScript dans le monde Microsoft
Nouveautés JavaScript dans le monde MicrosoftNouveautés JavaScript dans le monde Microsoft
Nouveautés JavaScript dans le monde Microsoft
 
Gitlab CI : Integration et Déploiement Continue
Gitlab CI : Integration et Déploiement ContinueGitlab CI : Integration et Déploiement Continue
Gitlab CI : Integration et Déploiement Continue
 
Spécifications de webservices avec un seul outil
Spécifications de webservices avec un seul outilSpécifications de webservices avec un seul outil
Spécifications de webservices avec un seul outil
 
Commencer avec le tdd
Commencer avec le tddCommencer avec le tdd
Commencer avec le tdd
 
Automatisations des tests fonctionnels avec Robot Framework
Automatisations des tests fonctionnels avec Robot FrameworkAutomatisations des tests fonctionnels avec Robot Framework
Automatisations des tests fonctionnels avec Robot Framework
 
Java 9 modulo les modules devoxx fr 2017
Java 9 modulo les modules devoxx fr 2017Java 9 modulo les modules devoxx fr 2017
Java 9 modulo les modules devoxx fr 2017
 
Intégration Continue et PHP
Intégration Continue et PHPIntégration Continue et PHP
Intégration Continue et PHP
 
Symposium n°7 : Plateforme Meteor
Symposium n°7 : Plateforme MeteorSymposium n°7 : Plateforme Meteor
Symposium n°7 : Plateforme Meteor
 
Node, Grunt et leurs copains qui font de l’accessibilité tout seuls !
Node, Grunt et leurs copains qui font de l’accessibilité tout seuls !Node, Grunt et leurs copains qui font de l’accessibilité tout seuls !
Node, Grunt et leurs copains qui font de l’accessibilité tout seuls !
 
Des tests modernes pour Drupal
Des tests modernes pour DrupalDes tests modernes pour Drupal
Des tests modernes pour Drupal
 
RefCard Tests sur tous les fronts
RefCard Tests sur tous les frontsRefCard Tests sur tous les fronts
RefCard Tests sur tous les fronts
 
Introduction à Angularjs
Introduction à AngularjsIntroduction à Angularjs
Introduction à Angularjs
 
TechDays Montreal WebMatrix, voyez ce que la matrice peut faire pour vous!!
TechDays Montreal  WebMatrix, voyez ce que la matrice peut faire pour vous!!TechDays Montreal  WebMatrix, voyez ce que la matrice peut faire pour vous!!
TechDays Montreal WebMatrix, voyez ce que la matrice peut faire pour vous!!
 
Présentation du versioning avec Git
Présentation du versioning avec GitPrésentation du versioning avec Git
Présentation du versioning avec Git
 

Javascript in a continuous integration environment