anchor.diff:      XsltFile:           string
   }
   
  -// SpecFlow defalt execution params
  +// SpecFlow default execution parameters.
   let SpecFlowDefaults = { 
       SubCommand =        "generateall"
       ProjectFile =       null
  
positive.code: open System.IO
  open System.Text
  
  // SpecFlow execution params type
  type SpecFlowParams = { 
      SubCommand:         string
      ProjectFile:        string
  
negative.code:     XsltFile =          null
  }
  
  // Runs SpecFlow on a project.
  /// ## Parameters
  ///
  ///  - `setParams` - Function used to manipulate the default SpecFlow parameter value.
  let SpecFlow setParams =    
      let parameters = setParams SpecFlowDefaults
  
      traceStartTask "SpecFlow " parameters.SubCommand
  
      let tool = parameters.ToolPath @@ parameters.ToolName
  
      let commandLineBuilder = 
          new StringBuilder()
          |> append           parameters.SubCommand
          |> append           parameters.ProjectFile
          |> appendIfNotNull  parameters.BinFolder "/binFolder:"
          |> appendIfNotNull  parameters.OutputFile "/out:"
          |> appendIfNotNull  parameters.XmlTestResultFile "/xmlTestResult:"
          |> appendIfNotNull  parameters.TestOutputFile "/testOutput:"
          |> appendIfTrue     parameters.Verbose "/verbose"
          |> appendIfTrue     parameters.ForceRegeneration "/force"
          |> appendIfNotNull  parameters.XsltFile "/xsltFile:"
  
      let args = commandLineBuilder.ToString()
  
      trace (tool + " " + args)
  
      let result =
          execProcessAndReturnExitCode (fun info ->
              info.FileName <- tool
              info.WorkingDirectory <- parameters.WorkingDir
              info.Arguments <- args) System.TimeSpan.MaxValue
  
  
      match result with
      | 0 -> traceEndTask "SpecFlow " parameters.SubCommand
      | _ -> failwithf "SpecFlow %s failed. Process finished with exit code %i" parameters.SubCommand result
  