Suspends execution and prompts question
to the console
(STDOUT). An operator (manual tester) can then enter a line of text and hit
<ENTER>. The entered text is returned, and both question
and the result is added to the output using puts.
If you want a beep to happen (to grab the manual tester's attention), just prepend ASCII character 7 to the question:
ask("#{7.chr}How many cukes are in the external system?")
If that doesn't issue a beep, you can shell out to something else that makes a sound before invoking ask.
# File lib/cucumber/runtime/user_interface.rb, line 30 def ask(question, timeout_seconds) STDOUT.puts(question) STDOUT.flush puts(question) if(Cucumber::JRUBY) answer = jruby_gets(timeout_seconds) else answer = mri_gets(timeout_seconds) end if(answer) puts(answer) answer else raise("Waited for input for #{timeout_seconds} seconds, then timed out.") end end
Embed src
of MIME type mime_type
into the output.
The src
argument may be a path to a file, or if it's an image
it may also be a Base64 encoded image. The embedded data may or may not be
ignored, depending on what kind of formatter(s) are active.
# File lib/cucumber/runtime/user_interface.rb, line 53 def embed(src, mime_type, label) @visitor.embed(src, mime_type, label) end
Output messages
alongside the formatted output. This is an
alternative to using Kernel#puts - it will display nicer, and in all
outputs (in case you use several formatters)
# File lib/cucumber/runtime/user_interface.rb, line 13 def puts(*messages) @visitor.puts(*messages) end