Promote to variables
Extract `CommandRunner` class
Verify that output is written
Verify that errors are written
Verify that working directory is removed
Obey semantics
Merge branch 'extract-command-runner'