Ich habe eine Reihe von Tests in einer Suite, die ich über viele Seitenobjekte hinweg ausführen möchte. Ich habe versucht, ein Testobjekt wie unten zu bauen, außer dass es nur das erste ausführt.Verschachtelung von Tests in einer einzigen Nightwatch-Testsuite zur Verwendung mehrerer Vorbezeichnungen
module.exports = {
'test1': {
before: function() { console.log('before1'); },
'test 1a': function() { console.log('test1a'); }
},
'test2': {
before: function() { console.log('before2'); },
'test 1a': function() { console.log('test2a'); }
}
};
Ist es möglich, diese Art von Verschachtelung in einer Testsuite durchzuführen? Der tatsächliche Verwendung Fall ich erreichen möchte ist wie folgt:
['page1', 'page2'].forEach(page => {
this[`Do something on ${page}`] = {
before: client => {
client.page[page].navigate();
},
'it does something': client => {
client.page[page]().expect.section('@element').visible;
}
}
wo ich dynamische Testsuiten bauen will, dass die gleichen Tests auf vielen „Seite“ Objekten ausgeführt werden.
UPDATE: Ich möchte wirklich den Nightwatch Runner verwenden, anstatt einen anderen Läufer wie Mocha zu verwenden, der diese Funktionalität tatsächlich hat.
ich nicht denke, es ist ein gutes Design, sollten wir den Testfall trennen s, mach es. In jedem Testfall, den ich getan habe, sind sie eine Menge Seite-Objekt in Vorher/Nachher erforderlich (Vorbedingung und saubere Sachen nach dem Test) .So besser machen es so einfach wie möglich –