¿Cómo puedo acceder a los nombres de escenarios y ejemplos de pepino?

StackOverflow https://stackoverflow.com/questions/664415

  •  21-08-2019
  •  | 
  •  

Pregunta

Estoy usando el pepino para generar scripts de prueba que pueden ser ejecutados por una herramienta o humano ... así que no es el uso estándar.

Sin embargo, me gustaría pasar a través de los nombres de escenarios y ejemplo a través de mi salida.

¿Es esto posible?

¿Fue útil?

Solución

Encontrados ella .. (con algo de ayuda de Tim Walker)

Before do |scenario|
 puts "Before Scenario: #{scenario.to_sexp[2]}"
 .
 .
 .
end

Su SExpression puede ser diferente, por lo que vale la pena hacer un scenario.to_sexp.inspect para ver lo que es el árbol.

Aslak está dispuesto a evitar la exposición de las propiedades de sus clases (que es una decisión Sucede que estar de acuerdo, así que estoy feliz de hacer este trabajo alrededor).

Otros consejos

Una respuesta más seria (o al menos, la sugerencia): hacen uso de la reflexión de rubí para tratar de encontrar lo que busca. Agarrar objetos posibles, averiguar qué métodos que tienen, y ver si puede encontrarlo. Por ejemplo:

File.open('happy_hunting.log','a') { |f|
    f.print "Scenario supports: #{(scenario.methods - Object.methods).inspect}\n"
    }

y luego repetirla de averiguar cuál es dónde.

Otra sugerencia, mira a la fuente.

hice algo rudimentario. Como utilizo esta información sólo para la depuración, esto funcionará por ahora, hasta que encuentre algo mejor.

@Before
public void printTestInfoBeforeScenario(Scenario scenario) {
    LOGGER.info("Upcoming Test: "+scenario.getSourceTagNames());
}

@After
public void printTestInfoAfterScenario(Scenario scenario) {
    LOGGER.info("Test Complete: " + scenario.getSourceTagNames() + " Status: " + scenario.getStatus());
}
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top