2011-03-18 9 views
12

¿Es posible tener dos clases de definición de paso, siendo el primero en un espacio de nombre/proyecto y el segundo en otro? que tienen la siguiente manera:Clases de definición de paso de especificación en diferentes proyectos

Mi proyecto de prueba que corro: espacio de nombres: ABZ.ExcelTest nombre de la clase: ABZ.ExcelTest.ExcelStepDefinition

Mi otro proyecto que es lógica para la prueba: espacio de nombres: ABZ. OfficeAddInTestLogic nombre clase: ABZ.OfficeAddInTestLogic.StepDefinition

he atributo tanto en mis clases, pero éste que no está en proyecto de prueba (ABZ.OfficeAddInTestLogic.StepDefinition) no se puede encontrar [Encuadernación], me sale error NUnit:

No se encontró la definición de paso para el paso. Use el siguiente código para crear uno: ...

¿Es posible tener 2 clases de definición de pasos en diferentes proyectos?

Respuesta

19

Sí, es - esa característica se llama medidas externas (ver https://github.com/techtalk/SpecFlow/blob/master/Tests/FeatureTests/ExternalSteps/ExternalSteps.feature)

Lo que probablemente se echa en falta es un escenario como este app.config:

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

que se verá para los pasos en un ensamblado externo llamado ExternalStepsCS en este caso.

+0

Sí, tienes razón, no he usado el archivo de configuración para cofigurar el flujo de especificaciones. Gracias por esto. :) – Vajda

1

A menudo tendré una biblioteca "Test Helpers", con un código común compartido entre varios proyectos de prueba. Tendré una clase en esta biblioteca compartida, llamémoslo CucumberBase. Entonces, en mi proyecto de prueba real, voy a tener una clase como esta:

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

Cada CucumberBase método público con la etiqueta de [Given()]/[When()]/[Then()]/etc. se recogió correctamente en mi proyecto de prueba real, dentro de la clase SomeFeatureSpecs. Esto me permite anular y extender la funcionalidad común también.

Cuestiones relacionadas