Skip to content

Commit 41dabe8

Browse files
committed
Fix for issue #779
1 parent 41885ae commit 41dabe8

File tree

4 files changed

+23
-21
lines changed

4 files changed

+23
-21
lines changed

src/NUnitTestAdapter/NUnitEventListener.cs

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -172,15 +172,18 @@ public void TestFinished(INUnitTestEventTestCase resultNode)
172172
}
173173
}
174174

175-
recorder.RecordEnd(result.TestCaseResult.TestCase, result.TestCaseResult.Outcome);
176-
foreach (var vsResult in result.TestResults)
175+
if (result.TestCaseResult != null)
177176
{
178-
recorder.RecordResult(vsResult);
179-
}
177+
recorder.RecordEnd(result.TestCaseResult.TestCase, result.TestCaseResult.Outcome);
178+
foreach (var vsResult in result.TestResults)
179+
{
180+
recorder.RecordResult(vsResult);
181+
}
180182

181-
if (result.TestCaseResult.Outcome == TestOutcome.Failed && settings.StopOnError)
182-
{
183-
executor.StopRun();
183+
if (result.TestCaseResult.Outcome == TestOutcome.Failed && settings.StopOnError)
184+
{
185+
executor.StopRun();
186+
}
184187
}
185188
}
186189

src/NUnitTestAdapter/TestFilterConverter/TestFilterParser.cs

Lines changed: 11 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@ public string ParseFilterExpression()
8585

8686
var sb = new StringBuilder("<or>");
8787

88-
foreach (string term in terms)
88+
foreach (var term in terms)
8989
sb.Append(term);
9090

9191
sb.Append("</or>");
@@ -111,7 +111,7 @@ public string ParseFilterTerm()
111111

112112
var sb = new StringBuilder("<and>");
113113

114-
foreach (string element in elements)
114+
foreach (var element in elements)
115115
sb.Append(element);
116116

117117
sb.Append("</and>");
@@ -128,12 +128,12 @@ public string ParseFilterCondition()
128128
if (LookingAt(LPAREN, NOT_OP))
129129
return ParseExpressionInParentheses();
130130

131-
Token lhs = Expect(TokenKind.Word);
131+
var lhs = Expect(TokenKind.Word);
132132

133133
if (!LookingAt(REL_OPS))
134134
return EmitFullNameFilter(CONTAINS_OP, lhs.Text);
135135

136-
Token op = Expect(REL_OPS);
136+
var op = Expect(REL_OPS);
137137
Token rhs;
138138

139139
switch (lhs.Text)
@@ -153,10 +153,8 @@ public string ParseFilterCondition()
153153

154154
default:
155155
// Assume it's a property name
156-
// op = Expect(REL_OPS);
157-
// rhs = Expect(TokenKind.String, TokenKind.Word);
158-
// return EmitPropertyElement(op, lhs, rhs);
159-
throw InvalidTokenError(lhs);
156+
rhs = Expect(TokenKind.String, TokenKind.Word);
157+
return EmitPropertyFilter(op, lhs.Text, rhs.Text);
160158
}
161159
}
162160

@@ -217,11 +215,11 @@ private static string EscapeRhsValue(Token op, string rhs)
217215

218216
private string ParseExpressionInParentheses()
219217
{
220-
Token op = Expect(LPAREN, NOT_OP);
218+
var op = Expect(LPAREN, NOT_OP);
221219

222220
if (op == NOT_OP) Expect(LPAREN);
223221

224-
string result = ParseFilterExpression();
222+
var result = ParseFilterExpression();
225223

226224
Expect(RPAREN);
227225

@@ -234,7 +232,7 @@ private string ParseExpressionInParentheses()
234232
// Require a token of one or more kinds
235233
private Token Expect(params TokenKind[] kinds)
236234
{
237-
Token token = NextToken();
235+
var token = NextToken();
238236

239237
if (kinds.Any(kind => token.Kind == kind))
240238
{
@@ -247,7 +245,7 @@ private Token Expect(params TokenKind[] kinds)
247245
// Require a token from a list of tokens
248246
private Token Expect(params Token[] valid)
249247
{
250-
Token token = NextToken();
248+
var token = NextToken();
251249

252250
if (valid.Any(item => token == item))
253251
{
@@ -284,7 +282,7 @@ private static string EscapeRegexChars(string input)
284282
{
285283
var sb = new StringBuilder();
286284

287-
foreach (char c in input)
285+
foreach (var c in input)
288286
{
289287
if (REGEX_CHARS.Contains(c))
290288
sb.Append('\\');

src/NUnitTestAdapter/TestFilterConverter/Tokenizer.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ public enum TokenKind
3131
Eof,
3232
Word,
3333
FQN,
34-
// String, // Unused
34+
String, // Unused
3535
Symbol
3636
}
3737

src/NUnitTestAdapterTests/TestFilterConverterTests/TestFilterParserTests.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -168,6 +168,7 @@ public void CreateParser()
168168
[TestCase(
169169
"TestCategory=Urgent & !(FullyQualifiedName=My.Tests | TestCategory = high)",
170170
"<and><cat>Urgent</cat><not><or><test>My.Tests</test><cat>high</cat></or></not></and>")]
171+
[TestCase("Bug = 12345", "<prop name='Bug'>12345</prop>")]
171172
public void TestParser(string input, string output)
172173
{
173174
Assert.That(_parser.Parse(input), Is.EqualTo($"<filter>{output}</filter>"));

0 commit comments

Comments
 (0)