Originalmente asumí que un archivo de paso estaba asociado con un archivo de características particular. Una vez que me di cuenta de que esto no era cierto, me ayudó a mejorar todos mis códigos SpecFlow y los archivos de funciones. El idioma de mis archivos de funciones ahora depende menos del contexto, lo que ha resultado en más definiciones de paso reutilizables y menos duplicación de código. Ahora organizo mis archivos de pasos de acuerdo con las similitudes generales y no según la función para la que son. Hasta donde sé, no hay forma de asociar un paso con una característica en particular, pero no soy un experto en SpecFlow, así que no confíe en mi palabra.
Si aún desea asociar sus archivos de paso con un archivo de características particular, simplemente proporcióneles nombres similares. No es necesario forzarlo para que solo funcione para esa función, incluso si el código de paso solo tiene sentido para esa característica. Esto se debe a que incluso si crea un paso duplicado para una función diferente, lo detectará como una coincidencia ambigua. El comportamiento de las coincidencias ambiguas se puede especificar en un archivo App.config. Consulte http://cloud.github.com/downloads/techtalk/SpecFlow/SpecFlow%20Guide.pdf para obtener más detalles sobre el archivo App.config. Por defecto, las coincidencias ambiguas se detectan y se informan como un error.
[edit]: En realidad, hay un problema con el trabajo de esta manera (teniendo solo en cuenta los archivos de paso asociados a los archivos de características). El problema surge cuando agrega o modifica un archivo .feature y usa la misma redacción que utilizó anteriormente, y olvida agregar un paso para ello, pero no lo nota porque ya creó un paso para esa redacción una vez. , y fue escrito de una manera sensible al contexto. Además, ya no estoy convencido de la utilidad de no asociar archivos de pasos con archivos de características. No creo que la mayoría de los clientes sean muy buenos para escribir las especificaciones de una manera independiente del contexto. Esa no es la forma en que normalmente escribimos, hablamos o pensamos.
En 1.7.0 parece ser atributo StepScope. p.ej. [StepScope (Tag = "mytag")] – ziya
El enlace está muerto. – Cumbayah
El nuevo enlace es https://github.com/techtalk/SpecFlow/wiki/Scoped-Bindings – Ecyrb