ho almeno 3 file .Feature nel mio progetto C# test Specflow in cui ho il passo, per esempio:file Feature Specflow con gli stessi passaggi che causano più istanze del browser per lanciare
Given I am at the Home Page
Quando ho prima ha scritto il passo nel file Feateure1.feature
e ha creato il metodo passo, ho messo in un file passo, diciamo, Steps1.cs
, che eredita da una classe base che inizializza una FirefoxDriver
. Tutte le mie classi StepsXXXX.cs
ereditano da questa classe base.
Quindi, ho scritto Feature2.feature
, che ha anche un passo Given I am at the Home Page
. E il passo è stato automaticamente legato a quello di Steps1.cs
'Fino ad ora, nessun problema. Questo è praticamente ciò che volevo - avere passaggi riutilizzabili per tutto il progetto di test. Ma il problema è che, ogni volta che eseguo uno scenario che presenta passaggi in diversi file StepsXXXX
, ottengo varie istanze del browser in esecuzione.
======
Sono abbastanza sicuro che questo è dovuto al fatto che il mio StepsXXXX
(classi vincolante) tutto ereditano da questa classe di base che ha un'IWebDriver propria, e quando il passo viene chiamato, viene chiamato tutto il resto (compresi i metodi dello scenario before/after). Ma non riesco a capire come aggirare questo.
Voglio ancora i passaggi riutilizzabili. Ho provato a mettere questi passaggi nella classe base, ma non ha funzionato. Ho pensato di cambiare anche i binding, ma specflow usa stringhe significative per farlo, e non voglio cambiarli in stringhe fuorvianti.
Qualcuno si è imbattuto in questo? Qualsiasi aiuto è molto apprezzato.