diff --git a/src/NUnitTestAdapter/NUnitEventListener.cs b/src/NUnitTestAdapter/NUnitEventListener.cs
index 61b2b2ae..ab57c652 100644
--- a/src/NUnitTestAdapter/NUnitEventListener.cs
+++ b/src/NUnitTestAdapter/NUnitEventListener.cs
@@ -172,15 +172,18 @@ public void TestFinished(INUnitTestEventTestCase resultNode)
}
}
- recorder.RecordEnd(result.TestCaseResult.TestCase, result.TestCaseResult.Outcome);
- foreach (var vsResult in result.TestResults)
+ if (result.TestCaseResult != null)
{
- recorder.RecordResult(vsResult);
- }
+ recorder.RecordEnd(result.TestCaseResult.TestCase, result.TestCaseResult.Outcome);
+ foreach (var vsResult in result.TestResults)
+ {
+ recorder.RecordResult(vsResult);
+ }
- if (result.TestCaseResult.Outcome == TestOutcome.Failed && settings.StopOnError)
- {
- executor.StopRun();
+ if (result.TestCaseResult.Outcome == TestOutcome.Failed && settings.StopOnError)
+ {
+ executor.StopRun();
+ }
}
}
diff --git a/src/NUnitTestAdapter/TestFilterConverter/TestFilterParser.cs b/src/NUnitTestAdapter/TestFilterConverter/TestFilterParser.cs
index dd9c45a3..48f38eef 100644
--- a/src/NUnitTestAdapter/TestFilterConverter/TestFilterParser.cs
+++ b/src/NUnitTestAdapter/TestFilterConverter/TestFilterParser.cs
@@ -85,7 +85,7 @@ public string ParseFilterExpression()
var sb = new StringBuilder("");
- foreach (string term in terms)
+ foreach (var term in terms)
sb.Append(term);
sb.Append("");
@@ -111,7 +111,7 @@ public string ParseFilterTerm()
var sb = new StringBuilder("");
- foreach (string element in elements)
+ foreach (var element in elements)
sb.Append(element);
sb.Append("");
@@ -128,12 +128,12 @@ public string ParseFilterCondition()
if (LookingAt(LPAREN, NOT_OP))
return ParseExpressionInParentheses();
- Token lhs = Expect(TokenKind.Word);
+ var lhs = Expect(TokenKind.Word);
if (!LookingAt(REL_OPS))
return EmitFullNameFilter(CONTAINS_OP, lhs.Text);
- Token op = Expect(REL_OPS);
+ var op = Expect(REL_OPS);
Token rhs;
switch (lhs.Text)
@@ -153,10 +153,8 @@ public string ParseFilterCondition()
default:
// Assume it's a property name
- // op = Expect(REL_OPS);
- // rhs = Expect(TokenKind.String, TokenKind.Word);
- // return EmitPropertyElement(op, lhs, rhs);
- throw InvalidTokenError(lhs);
+ rhs = Expect(TokenKind.String, TokenKind.Word);
+ return EmitPropertyFilter(op, lhs.Text, rhs.Text);
}
}
@@ -217,11 +215,11 @@ private static string EscapeRhsValue(Token op, string rhs)
private string ParseExpressionInParentheses()
{
- Token op = Expect(LPAREN, NOT_OP);
+ var op = Expect(LPAREN, NOT_OP);
if (op == NOT_OP) Expect(LPAREN);
- string result = ParseFilterExpression();
+ var result = ParseFilterExpression();
Expect(RPAREN);
@@ -234,7 +232,7 @@ private string ParseExpressionInParentheses()
// Require a token of one or more kinds
private Token Expect(params TokenKind[] kinds)
{
- Token token = NextToken();
+ var token = NextToken();
if (kinds.Any(kind => token.Kind == kind))
{
@@ -247,7 +245,7 @@ private Token Expect(params TokenKind[] kinds)
// Require a token from a list of tokens
private Token Expect(params Token[] valid)
{
- Token token = NextToken();
+ var token = NextToken();
if (valid.Any(item => token == item))
{
@@ -284,7 +282,7 @@ private static string EscapeRegexChars(string input)
{
var sb = new StringBuilder();
- foreach (char c in input)
+ foreach (var c in input)
{
if (REGEX_CHARS.Contains(c))
sb.Append('\\');
diff --git a/src/NUnitTestAdapter/TestFilterConverter/Tokenizer.cs b/src/NUnitTestAdapter/TestFilterConverter/Tokenizer.cs
index f286dbf7..650b23e6 100644
--- a/src/NUnitTestAdapter/TestFilterConverter/Tokenizer.cs
+++ b/src/NUnitTestAdapter/TestFilterConverter/Tokenizer.cs
@@ -31,7 +31,7 @@ public enum TokenKind
Eof,
Word,
FQN,
- // String, // Unused
+ String, // Unused
Symbol
}
diff --git a/src/NUnitTestAdapterTests/TestFilterConverterTests/TestFilterParserTests.cs b/src/NUnitTestAdapterTests/TestFilterConverterTests/TestFilterParserTests.cs
index 71b3e5ab..2d51a7cf 100644
--- a/src/NUnitTestAdapterTests/TestFilterConverterTests/TestFilterParserTests.cs
+++ b/src/NUnitTestAdapterTests/TestFilterConverterTests/TestFilterParserTests.cs
@@ -168,6 +168,7 @@ public void CreateParser()
[TestCase(
"TestCategory=Urgent & !(FullyQualifiedName=My.Tests | TestCategory = high)",
"UrgentMy.Testshigh")]
+ [TestCase("Bug = 12345", "12345")]
public void TestParser(string input, string output)
{
Assert.That(_parser.Parse(input), Is.EqualTo($"{output}"));