Domanda

È possibile disporre di classi di definizione a due passaggi con prima in uno spazio dei nomi/progetto, e secondo in un altro? Ho così questo:

Il mio progetto di test che gestisco: spazio dei nomi: abz.exceltest Nome classe: abz.exceltest.excelstepdefinition

Il mio altro progetto che è logica per il test: spazio dei nomi: abz.officeaddintestlogic Nome classe: abz.officeaddintestlog.stepdefinition

Ho un attributo [binding] su entrambe le mie classi, ma questo che non è nel progetto di test (Abz.OfficEddintestLogic.StepDefinition) non può essere trovato, ricevo un errore di nunit:

Nessuna definizione del passaggio di corrispondenza trovata per il passaggio. Usa il seguente codice per crearne uno: ...

È possibile disporre di classi di definizione di 2 passaggi in diversi progetti?

È stato utile?

Soluzione

Sì, quella funzionalità si chiama passaggi esterni (vedi https://github.com/techtalk/specflow/blob/master/tests/featuretests/externalsteps/externalsteps.feature)

Quello che probabilmente ti manca è un'impostazione app.config come questa:

<specFlow>  
<stepAssemblies>
  <stepAssembly assembly="ExternalStepsCS" />
</stepAssemblies>

Ciò cercherà passaggi in un gruppo esterno chiamato ExternTepSCS in questo caso.

Altri suggerimenti

Avrò spesso una libreria di "helper test", con codice comune condiviso tra più progetti di test. Avrò una lezione in questa biblioteca condivisa, chiamiamola CucumberBase. Quindi, nel mio vero progetto di test, avrò una lezione come questa:

[Binding]
public class SomeFeatureSpecs : CucumberBase
{
    ...
}

Ogni pubblico CucumberBase Metodo che è contrassegnato [Given()]/[When()]/[Then()]/eccetera. viene raccolto correttamente nel mio progetto di test reale, all'interno del SomeFeatureSpecs classe. Questo mi consente di sovrascrivere ed estendere anche funzionalità comuni.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top