Как я могу получить доступ к именам сценариев и примеров в Cucumber? - PullRequest
9 голосов
/ 20 марта 2009

Я использую cucumber для генерации тестовых сценариев, которые могут быть выполнены инструментом или человеком ... поэтому не стандартное использование.

Однако я хотел бы передать имена сценариев и примеров в мой вывод.

Возможно ли это?

Ответы [ 3 ]

8 голосов
/ 21 марта 2009

Нашел это .. (с некоторой помощью Тима Уокера)

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

Ваше выражение может отличаться, поэтому стоит сделать scenario.to_sexp.inspect, чтобы увидеть, что это за дерево.

Аслак старается не выставлять свойства на своих уроках (с этим решением я согласен, поэтому я рад обойти эту работу).

2 голосов
/ 20 марта 2009

Более серьезный ответ (или, по крайней мере, предложение): используйте отражение Рубина, чтобы попытаться найти то, что вы ищете. Захватите вероятные объекты, выясните, какие методы у них есть, и посмотрите, сможете ли вы их найти. Например:

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

, а затем повторите его, чтобы выяснить, что и где.

Еще одно предложение, посмотрите на источник.

0 голосов
/ 22 апреля 2014

Я сделал что-то лоскутное. Поскольку я использую эту информацию только для отладки, это будет работать пока, пока я не найду что-то лучшее.

@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());
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...