Skip to content

Commit

Permalink
Adding NUnit analyzer and fixing tests
Browse files Browse the repository at this point in the history
  • Loading branch information
OsirisTerje committed Jul 11, 2020
1 parent 899b942 commit 7726b3b
Show file tree
Hide file tree
Showing 17 changed files with 113 additions and 114 deletions.
3 changes: 2 additions & 1 deletion NUnit3TestAdapter.sln.DotSettings
@@ -1,8 +1,9 @@
<wpf:ResourceDictionary xml:space="preserve" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:s="clr-namespace:System;assembly=mscorlib" xmlns:ss="urn:shemas-jetbrains-com:settings-storage-xaml" xmlns:wpf="http://schemas.microsoft.com/winfx/2006/xaml/presentation">
<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=CommentTypo/@EntryIndexedValue">DO_NOT_SHOW</s:String>
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=FQN/@EntryIndexedValue">FQN</s:String>
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=VS/@EntryIndexedValue">VS</s:String>
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/PredefinedNamingRules/=PrivateConstants/@EntryIndexedValue">&lt;Policy Inspect="True" Prefix="" Suffix="" Style="AaBb"&gt;&lt;ExtraRule Prefix="" Suffix="" Style="AA_BB" /&gt;&lt;/Policy&gt;</s:String>
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/PredefinedNamingRules/=PrivateInstanceFields/@EntryIndexedValue">&lt;Policy Inspect="True" Prefix="_" Suffix="" Style="aaBb"&gt;&lt;ExtraRule Prefix="" Suffix="" Style="aaBb" /&gt;&lt;/Policy&gt;</s:String>
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/PredefinedNamingRules/=PrivateInstanceFields/@EntryIndexedValue">&lt;Policy Inspect="True" Prefix="" Suffix="" Style="aaBb"&gt;&lt;ExtraRule Prefix="" Suffix="" Style="aaBb" /&gt;&lt;/Policy&gt;</s:String>
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/PredefinedNamingRules/=PrivateStaticFields/@EntryIndexedValue">&lt;Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /&gt;</s:String>
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/PredefinedNamingRules/=PrivateStaticReadonly/@EntryIndexedValue">&lt;Policy Inspect="True" Prefix="" Suffix="" Style="AaBb"&gt;&lt;ExtraRule Prefix="" Suffix="" Style="AA_BB" /&gt;&lt;/Policy&gt;</s:String>
<s:String x:Key="/Default/CodeInspection/CSharpLanguageProject/LanguageLevel/@EntryValue">CSharp70</s:String>
Expand Down
Expand Up @@ -11,8 +11,9 @@

<ItemGroup>
<PackageReference Include="nunit" Version="3.12.0" />
<PackageReference Include="NUnit3TestAdapter" Version="3.16.1" />
<PackageReference Include="NUnit3TestAdapter" Version="3.17.0" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.4" />
<PackageReference Include="NUnit.Analyzers" Version="0.3.0" />
</ItemGroup>

</Project>
4 changes: 2 additions & 2 deletions src/NUnitTestAdapter/NUnit3TestExecutor.cs
Expand Up @@ -21,7 +21,7 @@
// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
// ***********************************************************************

//#define LAUNCHDEBUGGER
// #define LAUNCHDEBUGGER

using System;
using System.Collections.Generic;
Expand Down Expand Up @@ -210,7 +210,7 @@ public void RunTests(IEnumerable<TestCase> tests, IRunContext runContext, IFrame
Unload();
}

private bool IsInProcDataCollectorsSpecifiedWithMultipleAssemblies(IEnumerable<IGrouping<string, TestCase>> assemblyGroups)
private bool IsInProcDataCollectorsSpecifiedWithMultipleAssemblies(IEnumerable<IGrouping<string, TestCase>> assemblyGroups)
=> Settings.InProcDataCollectorsAvailable && assemblyGroups.Count() > 1;

void ITestExecutor.Cancel()
Expand Down
2 changes: 1 addition & 1 deletion src/NUnitTestAdapter/NUnitTestFilterBuilder.cs
Expand Up @@ -57,7 +57,7 @@ public TestFilter ConvertVsTestFilterToNUnitFilter(IVsTestFilter vsFilter, IDisc
{
if (settings.DiscoveryMethod == DiscoveryMethod.Legacy)
return ConvertTfsFilterToNUnitFilter(vsFilter, discovery.LoadedTestCases);
if (!settings.UseNUnitFilter)
if (!settings.UseNUnitFilter)
return ConvertTfsFilterToNUnitFilter(vsFilter, discovery);
var result = ConvertVsTestFilterToNUnitFilter(vsFilter);
if (result == null)
Expand Down
49 changes: 23 additions & 26 deletions src/NUnitTestAdapter/TestFilterConverter/Tokenizer.cs
Expand Up @@ -47,18 +47,15 @@ public Token(TokenKind kind, string text)
Text = text;
}

public TokenKind Kind { get; private set; }
public TokenKind Kind { get; }

public string Text { get; private set; }
public string Text { get; }

public int Pos { get; set; }

#region Equality Overrides

public override bool Equals(object obj)
{
return obj is Token && this == (Token)obj;
}
public override bool Equals(object obj) => obj is Token token && this == token;

public override int GetHashCode()
{
Expand All @@ -68,7 +65,7 @@ public override int GetHashCode()
public override string ToString()
{
return Text != null
? Kind.ToString() + ":" + Text
? Kind + ":" + Text
: Kind.ToString();
}

Expand Down Expand Up @@ -102,36 +99,36 @@ public override string ToString()
/// </summary>
public class Tokenizer
{
private readonly string _input;
private int _index;
private readonly string input;
private int index;

private const char EOF_CHAR = '\0';
private const string WORD_BREAK_CHARS = "=~!()&|";
private readonly string[] DOUBLE_CHAR_SYMBOLS = { "!=", "!~" };
private readonly string[] dOubleCharSymbols = { "!=", "!~" };

private Token _lookahead;
private Token lookahead;

public Tokenizer(string input)
{
_input = input ?? throw new ArgumentNullException(nameof(input));
_index = 0;
this.input = input ?? throw new ArgumentNullException(nameof(input));
index = 0;
}

public Token LookAhead
{
get
{
if (_lookahead == null)
_lookahead = GetNextToken();
if (lookahead == null)
lookahead = GetNextToken();

return _lookahead;
return lookahead;
}
}

public Token NextToken()
{
Token result = _lookahead ?? GetNextToken();
_lookahead = null;
Token result = lookahead ?? GetNextToken();
lookahead = null;
return result;
}

Expand All @@ -140,7 +137,7 @@ private Token GetNextToken()
SkipBlanks();

var ch = NextChar;
int pos = _index;
int pos = index;

switch (ch)
{
Expand All @@ -160,7 +157,7 @@ private Token GetNextToken()
// Could be alone or start of a double char symbol
case '!':
GetChar();
foreach (string dbl in DOUBLE_CHAR_SYMBOLS)
foreach (string dbl in dOubleCharSymbols)
{
if (ch != dbl[0] || NextChar != dbl[1])
continue;
Expand All @@ -185,7 +182,7 @@ private Token GetNextToken()
// will return either a Word or an FQN and the
// parser grammar has been changed to accept either
// one of them in certain places.
return GetWordOrFQN();
return GetWordOrFqn();
}
}

Expand Down Expand Up @@ -230,10 +227,10 @@ private Token GetString()
}
#endif

private Token GetWordOrFQN()
private Token GetWordOrFqn()
{
var sb = new StringBuilder();
int pos = _index;
int pos = index;

CollectWordChars(sb);

Expand Down Expand Up @@ -301,7 +298,7 @@ private void CollectQuotedString(StringBuilder sb)
/// <returns>The next char.</returns>
private char GetChar()
{
return _index < _input.Length ? _input[_index++] : EOF_CHAR;
return index < input.Length ? input[index++] : EOF_CHAR;
}

/// <summary>
Expand All @@ -311,14 +308,14 @@ private char NextChar
{
get
{
return _index < _input.Length ? _input[_index] : EOF_CHAR;
return index < input.Length ? input[index] : EOF_CHAR;
}
}

private void SkipBlanks()
{
while (char.IsWhiteSpace(NextChar))
_index++;
index++;
}
}
}
58 changes: 29 additions & 29 deletions src/NUnitTestAdapterTests/AdapterSettingsTests.cs
Expand Up @@ -58,30 +58,30 @@ public void DefaultSettings(string xml)
Assert.Multiple(() =>
{
Assert.That(_settings.MaxCpuCount, Is.EqualTo(-1));
Assert.Null(_settings.ResultsDirectory);
Assert.Null(_settings.TargetFrameworkVersion);
Assert.Null(_settings.TargetPlatform);
Assert.Null(_settings.TestAdapterPaths);
Assert.IsTrue(_settings.CollectSourceInformation);
Assert.That(_settings.ResultsDirectory, Is.Null);
Assert.That(_settings.TargetFrameworkVersion, Is.Null);
Assert.That(_settings.TargetPlatform, Is.Null);
Assert.That(_settings.TestAdapterPaths, Is.Null);
Assert.That(_settings.CollectSourceInformation, Is.True);
Assert.IsEmpty(_settings.TestProperties);
Assert.Null(_settings.InternalTraceLevel);
Assert.Null(_settings.WorkDirectory);
Assert.That(_settings.InternalTraceLevel, Is.Null);
Assert.That(_settings.WorkDirectory, Is.Null);
Assert.That(_settings.NumberOfTestWorkers, Is.EqualTo(-1));
Assert.That(_settings.DefaultTimeout, Is.EqualTo(0));
Assert.That(_settings.Verbosity, Is.EqualTo(0));
Assert.False(_settings.ShadowCopyFiles);
Assert.False(_settings.UseVsKeepEngineRunning);
Assert.Null(_settings.BasePath);
Assert.Null(_settings.PrivateBinPath);
Assert.NotNull(_settings.RandomSeed);
Assert.False(_settings.SynchronousEvents);
Assert.Null(_settings.DomainUsage);
Assert.False(_settings.InProcDataCollectorsAvailable);
Assert.IsFalse(_settings.DisableAppDomain);
Assert.IsFalse(_settings.DisableParallelization);
Assert.IsFalse(_settings.DesignMode);
Assert.False(_settings.UseTestOutputXml);
});
Assert.That(_settings.ShadowCopyFiles, Is.False);
Assert.That(_settings.UseVsKeepEngineRunning, Is.False);
Assert.That(_settings.BasePath, Is.Null);
Assert.That(_settings.PrivateBinPath, Is.Null);
Assert.That(_settings.RandomSeed, Is.Not.Null);
Assert.That(_settings.SynchronousEvents, Is.False);
Assert.That(_settings.DomainUsage, Is.Null);
Assert.That(_settings.InProcDataCollectorsAvailable, Is.False);
Assert.That(_settings.DisableAppDomain, Is.False);
Assert.That(_settings.DisableParallelization, Is.False);
Assert.That(_settings.DesignMode, Is.False);
Assert.That(_settings.UseTestOutputXml, Is.False);
});
}

[Test]
Expand Down Expand Up @@ -237,7 +237,7 @@ public void DefaultTimeoutSetting()
public void ShadowCopySetting()
{
_settings.Load("<RunSettings><NUnit><ShadowCopyFiles>true</ShadowCopyFiles></NUnit></RunSettings>");
Assert.True(_settings.ShadowCopyFiles);
Assert.That(_settings.ShadowCopyFiles, Is.True);
}


Expand All @@ -259,7 +259,7 @@ public void VerbositySetting()
public void UseVsKeepEngineRunningSetting()
{
_settings.Load("<RunSettings><NUnit><UseVsKeepEngineRunning>true</UseVsKeepEngineRunning></NUnit></RunSettings>");
Assert.True(_settings.UseVsKeepEngineRunning);
Assert.That(_settings.UseVsKeepEngineRunning, Is.True);
}

[Test]
Expand Down Expand Up @@ -335,7 +335,7 @@ public void CollectDataForEachTestSeparately()
</InProcDataCollectionRunSettings>
</RunSettings>");

Assert.Null(_settings.DomainUsage);
Assert.That(_settings.DomainUsage, Is.Null);
Assert.That(_settings.SynchronousEvents);
Assert.That(_settings.NumberOfTestWorkers, Is.Zero);
Assert.That(_settings.InProcDataCollectorsAvailable);
Expand All @@ -353,10 +353,10 @@ public void InProcDataCollector()
</InProcDataCollectionRunSettings>
</RunSettings>");

Assert.Null(_settings.DomainUsage);
Assert.False(_settings.SynchronousEvents);
Assert.That(_settings.DomainUsage, Is.Null);
Assert.That(_settings.SynchronousEvents, Is.False);
Assert.That(_settings.NumberOfTestWorkers, Is.EqualTo(-1));
Assert.True(_settings.InProcDataCollectorsAvailable);
Assert.That(_settings.InProcDataCollectorsAvailable, Is.True);
}

[Test]
Expand All @@ -371,10 +371,10 @@ public void LiveUnitTestingDataCollector()
</InProcDataCollectionRunSettings>
</RunSettings>");

Assert.Null(_settings.DomainUsage);
Assert.True(_settings.SynchronousEvents);
Assert.That(_settings.DomainUsage, Is.Null);
Assert.That(_settings.SynchronousEvents, Is.True);
Assert.That(_settings.NumberOfTestWorkers, Is.Zero);
Assert.True(_settings.InProcDataCollectorsAvailable);
Assert.That(_settings.InProcDataCollectorsAvailable, Is.True);
}

[Test]
Expand Down
2 changes: 1 addition & 1 deletion src/NUnitTestAdapterTests/AsyncTests.cs
Expand Up @@ -34,7 +34,7 @@ public async Task TaskTestSuccess()
{
var result = await ReturnOne();

Assert.AreEqual(1, result);
Assert.That(result, Is.EqualTo(1));
}

[TestCase(ExpectedResult = 1)]
Expand Down
10 changes: 5 additions & 5 deletions src/NUnitTestAdapterTests/DumpXmlTests.cs
Expand Up @@ -41,20 +41,20 @@ public void ThatWritingClearsBuffer()
var string1 = "something";
sut.AddString(string1);
sut.DumpForDiscovery();
Assert.That(res.Contains(string1));
Assert.That(res, Does.Contain(string1));
var string2 = "new string";
sut.AddString(string2);
sut.DumpForDiscovery();
Assert.That(res.Contains(string2));
Assert.That(res.Contains(string1), Is.False);
Assert.That(res, Does.Contain(string2));
Assert.That(res, Does.Not.Contain(string1));
}

[Test]
public void ThatRandomNameContainsValidCharacters()
{
var sut = new DumpXml("whatever");
var res = sut.RandomName();
Assert.That(res.EndsWith(".dump"));
Assert.That(res, Does.EndWith(".dump"));
var parts = res.Split('.');
Assert.That(parts.Length, Is.EqualTo(2), $"Too many dots in {res}");
var part1 = parts[0];
Expand Down Expand Up @@ -83,7 +83,7 @@ public void ThatEmptyContainsHeaders()
file.WriteAllText(Arg.Any<string>(), Arg.Do<string>(o => res = o));
var sut = new DumpXml("Whatever", file);
sut.DumpForDiscovery();
Assert.That(res.Contains("NUnitXml"));
Assert.That(res, Does.Contain("NUnitXml"));
var sarray = res.Split('\n');
Assert.That(sarray.Length, Is.GreaterThanOrEqualTo(3));
}
Expand Down

0 comments on commit 7726b3b

Please sign in to comment.