Skip to content

Commit d194627

Browse files
author
Jason Zhai
committed
Add ignoredPatterns parameter to NotHaveStdOutContaining method
1 parent f2a5bc8 commit d194627

File tree

1 file changed

+15
-2
lines changed

1 file changed

+15
-2
lines changed

src/Tests/Microsoft.NET.TestFramework/Assertions/CommandResultAssertions.cs

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -66,10 +66,23 @@ public AndConstraint<CommandResultAssertions> HaveStdOutContaining(Func<string,
6666
return new AndConstraint<CommandResultAssertions>(this);
6767
}
6868

69-
public AndConstraint<CommandResultAssertions> NotHaveStdOutContaining(string pattern)
69+
public AndConstraint<CommandResultAssertions> NotHaveStdOutContaining(string pattern, string[] ignoredPatterns = null)
7070
{
71-
Execute.Assertion.ForCondition(!_commandResult.StdOut.Contains(pattern))
71+
string filteredStdOut = _commandResult.StdOut;
72+
if (ignoredPatterns != null && ignoredPatterns.Length > 0)
73+
{
74+
foreach (var ignoredPattern in ignoredPatterns)
75+
{
76+
filteredStdOut = string.Join(Environment.NewLine, filteredStdOut
77+
.Split(new[] { Environment.NewLine }, StringSplitOptions.None)
78+
.Where(line => !line.Contains(ignoredPattern)));
79+
}
80+
}
81+
82+
// Perform the assertion on the filtered output
83+
Execute.Assertion.ForCondition(!filteredStdOut.Contains(pattern))
7284
.FailWith(AppendDiagnosticsTo($"The command output contained a result it should not have contained: {pattern}{Environment.NewLine}"));
85+
7386
return new AndConstraint<CommandResultAssertions>(this);
7487
}
7588

0 commit comments

Comments
 (0)