anchor.diff:              sprintf @"%s\%s.trx" parameters.ResultsDir (DateTime.Now.ToString("yyyyMMdd-HHmmss.ff"))
           else 
               null
  -//    trace ("/resultsfile is:" + testResultsFile)
  +
       let cl = 
           new StringBuilder()
           |> appendIfNotNull assembly "/testcontainer:"
  
positive.code:         |> appendIfNotNull testResultsFile "/resultsfile:"
  
      cl.ToString()
  
  /// Runs MSTest command line tool on a group of assemblies.
  /// ## Parameters
  
negative.code: /// ## Sample usage
  ///
  ///     Target "Test" (fun _ ->
  ///         !! (testDir + @"\*.Tests.dll") 
  ///           |> MSTest (fun p -> { p with Category = "group1" })
  ///     )
  let MSTest (setParams: MSTestParams -> MSTestParams) (assemblies: string seq) =
      let details = assemblies |> separated ", "
      traceStartTask "MSTest" details
      let parameters = MSTestDefaults |> setParams
                
      let assemblies =  assemblies |> Seq.toArray
      if Array.isEmpty assemblies then
          failwith "MSTest: cannot run tests (the assembly list is empty)."
  
      let tool = 
          match tryFindFile mstestPaths mstestexe with
          | Some path -> path
          | None -> failwith "Cannot find MSTest.exe executable"
  
      let failIfError assembly exitCode =
          if exitCode > 0 then
              let message = sprintf "%sMSTest test run failed for %s" Environment.NewLine assembly
              traceError message
              failwith message
  
      for assembly in assemblies do
          let args = commandLineBuilder parameters assembly
          execProcessAndReturnExitCode (fun info ->  
              info.FileName <- tool
              info.WorkingDirectory <- parameters.WorkingDir
              info.Arguments <- args) parameters.TimeOut
              |> failIfError assembly
  
      traceEndTask "MSTest" details
  