public void TestMainPath() { var log = Logger.LogToStringBuilder(); using (Logger.MarkEntryPoints()) { Logger.Event("Starting"); var name = "Llewellyn"; Logger.Variable("name", name); Logger.Message("I Got here"); Logger.Sql("Select * From table_name"); try { throw new Exception(" Problem"); } catch (Exception e) { Logger.Warning(e); } } var logText = log.ScrubPath(PathUtilities.GetDirectoryForCaller()); logText = StackTraceScrubber.ScrubStackTrace(logText); Approvals.Verify(logText); }
public static void Approve(Func <FileReportModel> model, IReportBuilder reportBuilder) { // setting the culture to make sure the date is formatted the same on all machines using (new TemporaryCulture("en-GB")) { var result = reportBuilder.CreateReport(model()); Approvals.Verify(result, s => Scrub(StackTraceScrubber.ScrubLineNumbers(StackTraceScrubber.ScrubPaths(s)))); } }
string Scrubber(string s) { s = StackTraceScrubber.ScrubLineNumbers(s); s = StackTraceScrubber.ScrubPaths(s); //the throwhelper seems to be present on some environments' stack traces but not others, cut it out to make tha approvals pass on most machines s = Regex.Replace(s, @"\n.*ThrowHelper.*\n", "\n"); s = Regex.Replace(s, @"\r?\n", "\n"); // replace line number in polyassert headers s = Regex.Replace(s, @"(?<=^ERROR in.*:)\d+(?=:$)", "<line>", RegexOptions.Multiline); return(s); }
public void TestDashedPath() { const string Path = @"C:\code\ApprovalTests - Net\Persistence\Datasets\DatasetTest.cs"; Assert.AreEqual("...\\DatasetTest.cs", StackTraceScrubber.ScrubPaths(Path)); }
public void TestKeyValuePair() { const string Value = @"name: File.foo"; Assert.AreEqual(Value, StackTraceScrubber.ScrubPaths(Value)); }
public void TestDashedPathOnMac() { const string Path = @"/Users/approver/code/ApprovalTests - Net/Persistence/Datasets/DatasetTest.cs"; Assert.AreEqual(".../DatasetTest.cs", StackTraceScrubber.ScrubPaths(Path)); }