Skip to content

Commit c996682

Browse files
Merge pull request #1665 from nunit/Issue-1590_NetAnalyzers
Enable Minimum .NET Analyzers
2 parents aba06aa + 138bc1c commit c996682

File tree

72 files changed

+361
-314
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

72 files changed

+361
-314
lines changed

.editorconfig

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,3 +28,9 @@ dotnet_diagnostic.CSIsNull001.severity = warning
2828

2929
# CSIsNull002: Use `is object` for non-null checks
3030
dotnet_diagnostic.CSIsNull002.severity = warning
31+
32+
# Microsoft NetAnalyzer
33+
34+
# This relates to classes that have finalizers, but we should not have any finalizer
35+
# CA1816: Dispose methods should call SuppressFinalize
36+
dotnet_diagnostic.CA1816.severity = none

src/Directory.Build.props

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,9 @@
66
<LangVersion>12</LangVersion>
77
<Features>strict</Features>
88
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
9+
<EnableNETAnalyzers>true</EnableNETAnalyzers>
10+
<AnalysisMode>Minimum</AnalysisMode>
11+
<EnforceCodeStyleInBuild>true</EnforceCodeStyleInBuild>
912
<Version Condition="'$(Version)'==''">4.0.0.0</Version>
1013
<OutputPath>$(MSBuildThisFileDirectory)\..\bin\$(Configuration)\</OutputPath>
1114
<CheckEolTargetFramework>false</CheckEolTargetFramework>

src/NUnitCommon/nunit.agent.core.tests/AgentOptionTests.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ public void DefaultOptionSettings<T>(string propertyName, T defaultValue)
2525
var options = new AgentOptions();
2626
var prop = typeof(AgentOptions).GetProperty(propertyName);
2727
Assert.That(prop, Is.Not.Null, $"Property {propertyName} does not exist");
28-
Assert.That(prop.GetValue(options, new object[0]), Is.EqualTo(defaultValue));
28+
Assert.That(prop.GetValue(options, Array.Empty<object>()), Is.EqualTo(defaultValue));
2929
}
3030

3131
private static readonly Guid AGENT_GUID = Guid.NewGuid();
@@ -53,7 +53,7 @@ public void ValidOptionSettings<T>(string option, string propertyName, T expecte
5353
var options = new AgentOptions(option);
5454
var prop = typeof(AgentOptions).GetProperty(propertyName);
5555
Assert.That(prop, Is.Not.Null, $"Property {propertyName} does not exist");
56-
Assert.That(prop.GetValue(options, new object[0]), Is.EqualTo(expectedValue));
56+
Assert.That(prop.GetValue(options, Array.Empty<object>()), Is.EqualTo(expectedValue));
5757
}
5858

5959
[Test]

src/NUnitCommon/nunit.agent.core.tests/Runners/DomainManagerTests.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ public void CanCreateDomainWithApplicationBaseSpecified()
7171
public void CanUnloadDomain()
7272
{
7373
var domain = _domainManager.CreateDomain(_package);
74-
_domainManager.Unload(domain);
74+
DomainManager.Unload(domain);
7575

7676
CheckDomainIsUnloaded(domain);
7777
}
@@ -80,14 +80,14 @@ public void CanUnloadDomain()
8080
public void UnloadingTwiceThrowsNUnitEngineUnloadException()
8181
{
8282
var domain = _domainManager.CreateDomain(_package);
83-
_domainManager.Unload(domain);
83+
DomainManager.Unload(domain);
8484

85-
Assert.That(() => _domainManager.Unload(domain), Throws.TypeOf<NUnitEngineUnloadException>());
85+
Assert.That(() => DomainManager.Unload(domain), Throws.TypeOf<NUnitEngineUnloadException>());
8686

8787
CheckDomainIsUnloaded(domain);
8888
}
8989

90-
private void CheckDomainIsUnloaded(AppDomain domain)
90+
private static void CheckDomainIsUnloaded(AppDomain domain)
9191
{
9292
// HACK: Either the Assert will succeed or the
9393
// exception should be thrown.

src/NUnitCommon/nunit.agent.core.tests/Runners/TestAgentRunnerTests.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -92,26 +92,26 @@ private void CheckPackageLoading()
9292
Assert.That(_runner.IsPackageLoaded, Is.False, "Package should not be loaded automatically");
9393
}
9494

95-
private void CheckBasicResult(TestEngineResult result)
95+
private static void CheckBasicResult(TestEngineResult result)
9696
{
9797
foreach (var node in result.XmlNodes)
9898
CheckBasicResult(node);
9999
}
100100

101-
private void CheckBasicResult(XmlNode node)
101+
private static void CheckBasicResult(XmlNode node)
102102
{
103103
Assert.That(node.Name, Is.EqualTo("test-suite"));
104104
Assert.That(node.GetAttribute("testcasecount", 0), Is.EqualTo(MockAssembly.Tests));
105105
Assert.That(node.GetAttribute("runstate"), Is.EqualTo("Runnable"));
106106
}
107107

108-
private void CheckRunResult(TestEngineResult result)
108+
private static void CheckRunResult(TestEngineResult result)
109109
{
110110
foreach (var node in result.XmlNodes)
111111
CheckRunResult(node);
112112
}
113113

114-
private void CheckRunResult(XmlNode result)
114+
private static void CheckRunResult(XmlNode result)
115115
{
116116
CheckBasicResult(result);
117117
Assert.That(result.GetAttribute("passed", 0), Is.EqualTo(MockAssembly.PassedInAttribute));

src/NUnitCommon/nunit.agent.core/Agents/RemoteTestAgent.cs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,6 @@ public RemoteTestAgent(Guid agentId) : base(agentId)
2828

2929
public ITestAgentTransport? Transport;
3030

31-
public int ProcessId => System.Diagnostics.Process.GetCurrentProcess().Id;
32-
3331
public override bool Start()
3432
{
3533
Guard.OperationValid(Transport is not null, "Transport must be set before calling Start().");

src/NUnitCommon/nunit.agent.core/Communication/Transports/Tcp/TestAgentTcpTransport.cs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,20 +17,21 @@ namespace NUnit.Engine.Communication.Transports.Tcp
1717
public class TestAgentTcpTransport : ITestAgentTransport, ITestEventListener
1818
{
1919
private static readonly Logger log = InternalTrace.GetLogger(typeof(TestAgentTcpTransport));
20+
private static readonly char[] PortSeparator = [':'];
2021

2122
private readonly string _agencyUrl;
2223
private Socket? _clientSocket;
2324
private ITestEngineRunner? _runner;
2425

2526
public TestAgentTcpTransport(RemoteTestAgent agent, string serverUrl)
2627
{
27-
Guard.ArgumentNotNull(agent, nameof(agent));
28+
Guard.ArgumentNotNull(agent);
2829
Agent = agent;
2930

30-
Guard.ArgumentNotNullOrEmpty(serverUrl, nameof(serverUrl));
31+
Guard.ArgumentNotNullOrEmpty(serverUrl);
3132
_agencyUrl = serverUrl;
3233

33-
var parts = serverUrl.Split(new char[] { ':' });
34+
var parts = serverUrl.Split(PortSeparator);
3435
Guard.ArgumentValid(parts.Length == 2, "Invalid server address specified. Must be a valid endpoint including the port number", nameof(serverUrl));
3536
ServerEndPoint = new IPEndPoint(IPAddress.Parse(parts[0]), int.Parse(parts[1]));
3637
}

src/NUnitCommon/nunit.agent.core/Drivers/DriverService.cs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,9 @@ public class DriverService : IDriverService
1717
{
1818
private static readonly Logger log = InternalTrace.GetLogger("DriverService");
1919

20-
private readonly IList<IDriverFactory> _factories = new List<IDriverFactory>();
20+
private static readonly char[] CommaSeparator = [','];
21+
22+
private readonly List<IDriverFactory> _factories = new List<IDriverFactory>();
2123

2224
public DriverService()
2325
{
@@ -63,7 +65,7 @@ public IFrameworkDriver GetDriver(AppDomain domain, TestPackage package, string
6365
// any true Portable assembly would have a Profile as part of its name.
6466
var platform = targetFramework == ".NETPortable,Version=v5.0"
6567
? ".NETStandard"
66-
: targetFramework.Split(new char[] { ',' })[0];
68+
: targetFramework.Split(CommaSeparator)[0];
6769

6870
if (platform == "Silverlight" || platform == ".NETPortable" || platform == ".NETStandard" || platform == ".NETCompactFramework")
6971
if (skipNonTestAssemblies)

src/NUnitCommon/nunit.agent.core/Drivers/NUnit2DriverFactory.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ public bool IsSupportedTestFramework(AssemblyName reference)
4545
public IFrameworkDriver GetDriver(AppDomain domain, string id, AssemblyName reference)
4646
{
4747
if (!IsSupportedTestFramework(reference))
48-
throw new ArgumentException("Invalid framework", "reference");
48+
throw new ArgumentException("Invalid framework", nameof(reference));
4949

5050
if (!_resolverInstalled)
5151
{

src/NUnitCommon/nunit.agent.core/Drivers/NUnit3DriverFactory.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,8 @@ public bool IsSupportedTestFramework(AssemblyName reference)
3030
/// <returns>An IFrameworkDriver</returns>
3131
public IFrameworkDriver GetDriver(AppDomain domain, string id, AssemblyName reference)
3232
{
33-
Guard.ArgumentNotNullOrEmpty(id, nameof(id));
34-
Guard.ArgumentValid(IsSupportedTestFramework(reference), "Invalid framework", "reference");
33+
Guard.ArgumentNotNullOrEmpty(id);
34+
Guard.ArgumentValid(IsSupportedTestFramework(reference), "Invalid framework", nameof(reference));
3535

3636
log.Info("Using NUnitFrameworkDriver");
3737
return new NUnitFrameworkDriver(domain, id, reference);
@@ -44,7 +44,7 @@ public IFrameworkDriver GetDriver(AppDomain domain, string id, AssemblyName refe
4444
/// <returns></returns>
4545
public IFrameworkDriver GetDriver(string id, AssemblyName reference)
4646
{
47-
Guard.ArgumentNotNullOrEmpty(id, nameof(id));
47+
Guard.ArgumentNotNullOrEmpty(id);
4848
Guard.ArgumentValid(IsSupportedTestFramework(reference), "Invalid framework", nameof(reference));
4949
log.Info("Using NUnitFrameworkDriver");
5050
return new NUnitFrameworkDriver(id, reference);

0 commit comments

Comments
 (0)