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}"));