anchor.diff:        expect(lines, orderedEquals(['about', 'docs', 'test']));
       });
   
  -    final f = io.Process.run('hop', [Runner.RAW_TASK_LIST_CMD]);
  +    final f = io.Process.run(hopPath, [Runner.RAW_TASK_LIST_CMD]);
       f.onComplete(onComplete);
     }
   }
positive.code: part of test_hop;
  
  class IntegrationTests {
    static void run() {
      test('hop output is sorted', _testOutputSorted);
      test('bad hop command', _testBadHopCommand);
  
negative.code: 
    static void _testBadHopCommand() {
      final onComplete = expectAsync1((Future<io.ProcessResult> f) {
        expect(f.hasValue, isTrue);
        final pr = f.value;
        expect(pr.exitCode, equals(EXIT_CODE_USAGE));
      });
  
      final f = io.Process.run(hopPath, ['bad_command_name']);
      f.onComplete(onComplete);
    }
  
    static void _testOutputSorted() {
      final onComplete = expectAsync1((Future<io.ProcessResult> f) {
        expect(f.hasValue, isTrue);
        final pr = f.value;
        expect(pr.exitCode, equals(EXIT_CODE_SUCCESS));
  