Comment utiliser le Jasmin et CucumberJS avec le Rapporteur
Je suis à la recherche d'utiliser le Rapporteur, CucumberJS, et de Jasmin pour tester mon projet. Comment puis-je utiliser à la fois de Jasmin et de CucumberJS avec le Rapporteur? Voici le projet d'installation que j'ai créée:
/chemin/vers/myproj/protractor.conf.js
exports.config = {
seleniumServerJar: 'node_modules/protractor/selenium/selenium-server-standalone-2.45.0.jar',
specs: [
'features/*.feature'
],
baseUrl: 'http://localhost:8080',
multiCapabilities: [
{
'browserName': 'chrome'
}
],
allScriptsTimeout: 380000,
getPageTimeout: 20000,
framework: 'cucumber',
cucumberOpts: {
require: 'features/stepDefinitions.js',
format: 'summary'
}
};
Comme vous pouvez le voir, ce projet utilise des "concombre", comme le cadre. Comment puis-je ajouter dans le Jasmin cadre côtés CucumberJS? Serait-ce par le Rapporteur fichier de configuration ou à un autre endroit dans le code?
/chemin/vers/myproj/fonctionnalités de la démo.fonction
Feature: Some terse yet descriptive text of what is desired
Scenario: Some determinable business situation
Given some precondition
/chemin/vers/myproj/features/stepDefinitions.js
module.exports = function() {
this.Given(/^some precondition$/, function (callback) {
expect(true).toEqual(true);
callback();
});
};
Quand cela est effectué, "s'attendre à" n'est pas défini, sans doute parce que Jasmine n'a pas été intégrée, et c'est attendre mondiale avec elle. Voici le message d'erreur complet:
$ $(npm bin)/protractor protractor.conf.js
Starting selenium standalone server...
[launcher] Running 1 instances of WebDriver
Selenium standalone server started at http://192.168.1.115:59957/wd/hub
(::) failed steps (::)
ReferenceError: expect is not defined
at World.<anonymous> (/path/to/myproj/features/stepDefinitions.js:3:5)
at process._tickCallback (node.js:355:11)
Failing scenarios:
/path/to/myproj/features/demo.feature:3 # Scenario: Some determinable business situation
1 scenario (1 failed)
1 step (1 failed)
Shutting down selenium standalone server.
[launcher] 0 instance(s) of WebDriver still running
[launcher] chrome #1 failed 1 test(s)
[launcher] overall: 1 failed spec(s)
[launcher] Process exited with error code 1
/chemin/vers/myproj/paquet.json
{
"name": "myproj",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "",
"license": "ISC",
"devDependencies": {
"cucumber": "0.4.9",
"protractor": "git+https://github.com/angular/protractor.git#0262268fa43b9eefac815d986740efa07bb15818"
}
}
Note: je suis en utilisant un particulier de s'engager à le Rapporteur dépôt Git dans mon colis.json, parce que la dernière version (2.1.0) a un bug, ce qui empêche l'intégration avec CucumberJS.
OriginalL'auteur Aristarkh Artemiy | 2015-06-09
Vous devez vous connecter pour publier un commentaire.
CucumberJS et le Jasmin sont mutuellement exclusives; vous ne serez pas en mesure d'utiliser de Jasmine s'attend dans le Concombre étapes. Ce que vous avez à faire est plutôt de charge séparé attente module. Je dirais Chai avec le chai-comme promis plugin. (chai-comme promis, simplifie le processus de l'écriture attentes à l'égard de promesses. Le rapporteur remplace la
expect()
fonction de Jasmin de faire cela pour vous dans les coulisses), le Plus probable que vous aurez envie de le faire dans votre Monde que c'est la meilleure façon de fournir l'accès dans votre démarche Définitions. Votre Monde ressemblerait à quelque chose comme ceci:Ensuite dans votre démarche Définitions fichier que vous venez de charger dans le Monde par la CucumberJS documentation et vous êtes à l'Étape Définitions seront limités à fournir l'accès à tous les biens du Monde:
Maintenant, pour certains sans vergogne de l'auto-promotion: si vous utilisez le Rapporteur, avec CucumberJS, je vous recommande de regarder un module que j'ai aidé à construire appelé CukeFarm. Il est préconfiguré avec un peu de modules que vous le trouverez utile et il fournit un certain nombre de Définitions générales Étape qui peut être utilisé sur la plupart des projets.
yep, c'est une très bonne raison d'aller à Moka. En utilisant les mêmes modèles/syntaxe (avec chai par exemple) dans vos tests unitaires et de Concombre à l'étape définitions est une bonne chose, surtout si d'autres personnes ont à sauter dans la base de code.
pouvez-vous élaborer sur les raisons pour lesquelles CucumberJS et le Jasmin sont mutuellement exclusifs? Je suis en train d'intégrer CucumberJs au rapporteur pour exécuter E2E tests. Si je pouvais faire que ce serait si gentil. Pile je suis en utilisant: Angular2, webpack, ..
Bien sûr, CucumberJS et le Jasmin sont deux frameworks de test. Ils sont différents des bibliothèques qui permettent de résoudre le même problème. En disant que vous souhaitez utiliser Jasmin avec CucumberJS est comme dire que vous souhaitez utiliser Jasmin avec Moka, ou Gulp avec Grunt, ou Angulaire avec de Braise. Comme pour l'utilisation Rapporteur: Rapporteur est un lanceur de test, et il a besoin d'un framework de test pour fournir la structure. Ils semblent préférer le Jasmin, mais ils soutiennent, le cadre que vous le souhaitez. Jetez un oeil à leurs cadres.md fichier pour des conseils sur la mise en place Rapporteur, avec CucumberJS, ou tout simplement utiliser une bibliothèque comme CukeFarm qui prévoit que pour vous.
Re: mon commentaire précédent: cadres.md CukeFarm
OriginalL'auteur Nathan Thompson
Ont un coup d'oeil à ce projet sur github
https://github.com/DealerDotCom/protractor-jasmine-cucumber
OriginalL'auteur Manoj