anchor.diff:                let succeeded = runTests asm
                 if not succeeded then yield asm ]
   
  -    if not (List.isEmpty failedTests)
  -    then failwithf "xUnit failed for the following assemblies: %s" (separated ", " failedTests)
  +    if not (List.isEmpty failedTests) then
  +        sprintf "xUnit failed for the following assemblies: %s" (separated ", " failedTests)
  +        |> match parameters.ErrorLevel with
  +           | Error -> failwith
  +           | DontFailBuild -> traceImportant
   
       traceEndTask "xUnit" details
positive.code:       /// If the timeout is reached the xUnit task will be killed. Default is 5 minutes.
        TimeOut: TimeSpan
        /// The output directory. It's the current directoy if nothing else is specified.
        OutputDir: string }
  
  /// The xUnit default parameters
  let XUnitDefaults =
  
negative.code: open System
  open System.IO
  open System.Text
  
  /// Option which allows to specify if an xUnit error should break the build.
  type XUnitErrorLevel =
  /// This option instructs FAKE to break the build if xUnit reports an error. (Default)
  | Error
  /// With this option set, no exception is thrown if a test is broken.
  | DontFailBuild
  
  /// The xUnit parameter type
  type XUnitParams = { 
  