Вывод, который вы видите из огурца, выводится из форматера (ов) огурца, который вы используете. Вызов puts
внутри определения шага вызывает puts
в форматере, который затем покажет его в правильном месте в выходных данных. Проблема в том, что если вы вызываете puts
из другого объекта (например, класса в вашем приложении), он фактически вызывает Kernel#puts
, о котором форматер огурца не имеет никакого представления.
Вы можете получить то, что хотите, записав в регистратор Cucumber вместо Kernel#puts
в коде определения без пошагового вызова, вызвав что-то вроде
Cucumber.logger.info 'text to log'`