anchor.diff:    }
   
     bool get isFinished {
  -    return !lastCommandOutput.successful ||
  -           commands.length == commandOutputs.length;
  +    return commandOutputs.length > 0 &&
  +        (!lastCommandOutput.successful ||
  +         commands.length == commandOutputs.length);
     }
   }
   
  
positive.code:                 executable,
                  arguments,
                  environmentOverrides);
  }
  
  class CommandBuilder {
  
negative.code:     outcome = _negateOutcomeIfIncompleteAsyncTest(outcome, decodeUtf8(stdout));
      return _negateOutcomeIfNegativeTest(outcome, testCase.isNegative);
    }
  }
  
  class ScriptCommandOutputImpl extends CommandOutputImpl {
    final Expectation _result;
  
    ScriptCommandOutputImpl(ScriptCommand command, this._result,
                            String scriptExecutionInformation, Duration time)
        : super(command, 0, false, [], [], time, false) {
      var lines = scriptExecutionInformation.split("\n");
      diagnostics.addAll(lines);
    }
  
    Expectation result(TestCase testCase) => _result;
  
    bool get canRunDependendCommands => _result == Expectation.PASS;
  
    bool get successful => _result == Expectation.PASS;
  
  }
  
  CommandOutput createCommandOutput(Command command,
  