!2 A fixture for running local commands through a shell # This a variation of a fixture available with ''!-FitNesse-!''. However, as ''!-FitLibrary-!'' allows for multiple fixtures running at once, this handles a single shell command. >JavaExample # ----!3 Starting and Finishing # * To start a shell command and wait for it to finish: |''with shell''| |''synchronously''|java -help| * To start a shell command but not wait for it to finish, so that the output can be processed as it's running: |''asynchronously''|java -help| * To wait for the process to finish: |''wait to finish''| |''wait to finish''|2000| # ----!3 Checking next output (sys out and sys err) # * Check the contents of the next line of output (the line is then discarded): |''sys out line''|'''is'''|Usage: java [-options] class [args...]| |''sys out line''|'''contains'''|(to execute a class)| |''sys err line''|'''contains'''|!-RuntimeException-!| * Check the contents of the next line of output, but only wait for a given period in milliseconds (only relevant with asynchronous execution): |''sys out line waiting for''|10|'''contains'''|(to execute a class)| |''sys err line waiting for'''|10|'''matches'''|Exception.*| * Scan through the lines of output until finding a match (the lines are discarded): |''first matching line with''|hot|''in sys out''|'''matches'''|synonym| |''first matching line with''|verbose|''in sys err''|'''matches'''|jni| * Scan through the lines of output until finding a match with a timeout (the lines are discarded): |''first matching line with''|hot|''waiting for''|200|''in sys out''|'''matches'''|synonym| |''first matching line with''|verbose|''waiting for''|200|''in sys err''|'''matches'''|jni| ----!3 Remaining output |'''show'''|''outputs remaining''| ----!3 Providing input |''write input''|Hello World|