Diese Ausgabe ist eine Fortsetzung dieser https://github.com/angular/protractor/issues/4311 . Wo ich die Änderungen an der Syntax bespreche, wie man den Winkelmesser zum Ausführen von Cucumberjs-Skripten verwendet.
Wie von @wswebcreation https://github.com/wswebcreation angefordert, habe ich dieses andere Problem geschlossen und hier ein neues eröffnet.
Die letzte Aufzeichnung einer erfolgreichen Hinrichtung, die ich habe, war am 12. Mai 2017, 14:03 Uhr. Genau das Datum in Ihrem Dokument.
Ihr Beispiel zu Tags ist sehr einfach ... wie soll ich dann 3 Tags aufrufen, zwei müssen ausgeführt werden und eine wird ignoriert. Vor dem 12. Mai funktionierte dies problemlos, jetzt funktioniert es nicht mehr:
protractor ./FM_IntTest_UI_conf.js --disableChecks [email protected] --params.login.passw=mypassword --cucumberOpts.tags ~<strong i="13">@ignore</strong> --cucumberOpts.tags <strong i="14">@smoke</strong>,@sprint
Ihr Dokument sagt jetzt, dass es so sein sollte, funktioniert aber nicht, gibt dieselbe Fehlermeldung zurück, die ich mit dem "Ticket" gesendet habe.
protractor ./FM_IntTest_UI_conf.js --disableChecks [email protected] --params.login.passw=mypassword --cucumberOpts.tags '<strong i="18">@smoke</strong> or <strong i="19">@rt</strong>' --cucumberOpts.tags 'not <strong i="20">@ignore</strong>'
Fehler: Fehler: mehr als eine Konfigurationsdatei angegeben
unter C:\Users\echavez\AppData\Roaming\npm\node_modules\protractor\built\cli.js:155:15
unter C:\Users\echavez\AppData\Roaming\npm\node_modules\protractor\node_modules\optimist\index.js:307:21
bei Array.forEach (nativ)
at parseArgs (C:\Users\echavez\AppData\Roaming\npm\node_modules\protractor\node_modules\optimist\index.js:305:16)
at Object.Argv.self.parse (C:\Users\echavez\AppData\Roaming\npm\node_modules\protractor\node_modules\optimist\index.js:140:16)
bei Objekt. (C:\Users\echavez\AppData\Roaming\npm\node_modules\protractor\built\cli.js:158:21)
bei Module._compile (module.js:571:32)
bei Object.Module._extensions..js (module.js:580:10)
bei Module.load (module.js:488:32)
bei tryModuleLoad (module.js:447:12)
Kann ich im Gurkendokument sehen, dass sich auch die Codierungssyntax für die Schrittdefinition geändert hat? Warum es jetzt komplizierter machen? Denn mit der neuen Syntax muss ich Schritte nach Szenarien gruppieren. Aber es gibt einige Schritte, die in mehreren Szenarien wiederholt werden, wodurch Code in jedem Szenario wiederholt wird? Ich werde mit Redundanzen in meinem Code enden. Wieso den?
Hier ist ein Ausschnitt dessen, was ich JETZT in meiner Datei test.spec.js habe:
this.Given('I am testing my Widget Application', function (callback) {
edirp.edirejectwidgetlink.click().then(function(){
callback();
}).catch(function(reason) {
console.log('ERROR: Widget button not found');
callback(reason);
});
});
this.When('There are records in the Widget List', function() {
edirp.edigetrow.count().then(function(cnt){
if(cnt>0){
return recordsFound = cnt;
}else{
return recordsFound = 0;
}
});
});
this.Then('Header name of the Widget List is '(.+)'', function(header, callback) {
expect(po.headertext.getText()).to.eventually.equal(header).then(function(){
callback();
}).catch(function(reason) {
console.log('Warning: Incorrect Text.');
callback(reason);
});
});
Hier ist ein Ausschnitt von dem, was als "Update" vorgeschlagen wird ... für mich ist es ein DOWNGRADE:
var seleniumWebdriver = require('selenium-webdriver');
var {defineSupportCode} = require('cucumber');
defineSupportCode(function({Given, When, Then}) {
Given('I am testing my Widget Application', function (callback) {
edirp.edirejectwidgetlink.click().then(function(){
callback();
}).catch(function(reason) {
console.log('ERROR: Widget button not found');
callback(reason);
});
When('There are records in the Widget List', function() {
edirp.edigetrow.count().then(function(cnt){
if(cnt>0){
return recordsFound = cnt;
}else{
return recordsFound = 0;
}
});
Then('Header name of the Widget List is '(.+)'', function(header, callback) {
expect(po.headertext.getText()).to.eventually.equal(header).then(function(){
callback();
}).catch(function(reason) {
console.log('Warning: Incorrect Text.');
callback(reason);
});
});
Wenn das Szenario mehrere Gegeben, Wann, Dann... hat, müssen diese hier so aufgezählt werden?:
defineSupportCode(function({Gegeben, Und, Und, Wann, Und, Und, Dann, Und, Und, Und}) {
Wenn das wahr ist... Wenn ich nun den Schritt "Wenn Datensätze im EDI-Rejects-Widget vorhanden sind" in einem anderen Szenario in meiner Funktion erneut verwenden möchte, muss ich dann die gesamte Funktion erneut codieren?
Alles was ich brauche sind Antworten mit Argumenten. Nimm es nicht persönlich.
Wenn das Szenario mehrere Gegeben, Wann, Dann... hat, müssen diese hier so aufgezählt werden?:
defineSupportCode(function({Gegeben, Und, Und, Wann, Und, Und, Dann, Und, Und, Und}) {
Nein. Given
, When
und Then
sind Funktionen, die Sie mehrmals aufrufen können (ähnlich wie this.Given
usw. aus 1.x). And
ist keine Funktion. Sie können alle von defineSupportCode
in der API-Referenz sehen, auf die von README.md
verlinkt wird
Kann ich im Gurkendokument sehen, dass sich auch die Codierungssyntax für die Schrittdefinition geändert hat?
Siehe https://github.com/cucumber/cucumber-js/issues/679
Warum es jetzt komplizierter machen? Denn mit der neuen Syntax muss ich Schritte nach Szenarien gruppieren.
Das ist nicht wahr
Danke das werde ich prüfen!
@charlierudolph Tnx für die Erklärung!
Dieser Thread wurde automatisch gesperrt, da nach dem Schließen in letzter Zeit keine Aktivität stattgefunden hat. Bitte öffnen Sie eine neue Ausgabe für verwandte Fehler.