Update test

This commit is contained in:
Matt Parker
2025-11-26 00:00:38 +10:00
parent 97b2e40949
commit b0177905bb
5 changed files with 57 additions and 12 deletions

View File

@@ -0,0 +1,50 @@
using System.Diagnostics;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Logging;
using SharpIDE.Application.Features.Analysis;
using SharpIDE.Application.Features.Build;
using SharpIDE.Application.Features.SolutionDiscovery.VsPersistence;
[assembly: CaptureConsole]
namespace SharpIDE.Application.UnitTests.Features.Analysis;
public class RoslynAnalysisTests
{
private readonly ITestOutputHelper _testOutputHelper;
public RoslynAnalysisTests(ITestOutputHelper testOutputHelper)
{
_testOutputHelper = testOutputHelper;
SharpIdeMsbuildLocator.Register();
}
[Fact]
public async Task GetProjectDiagnostics_NoSolutionChanges_IsSubsequentlyCheaper()
{
// Arrange
var serviceCollection = new ServiceCollection();
serviceCollection.AddApplication();
var services = serviceCollection.BuildServiceProvider();
var logger = services.GetRequiredService<ILogger<RoslynAnalysis>>();
var buildService = services.GetRequiredService<BuildService>();
var roslynAnalysis = new RoslynAnalysis(logger, buildService);
var solutionModel = await VsPersistenceMapper.GetSolutionModel(@"C:\Users\Matthew\Documents\Git\SharpIDE\SharpIDE.sln", TestContext.Current.CancellationToken);
var sharpIdeApplicationProject = solutionModel.AllProjects.Single(p => p.Name == "SharpIDE.Application");
roslynAnalysis._solutionLoadedTcs = new TaskCompletionSource(TaskCreationOptions.RunContinuationsAsynchronously);
await roslynAnalysis.Analyse(solutionModel, TestContext.Current.CancellationToken);
// Act
foreach (var i in Enumerable.Range(1, 3))
{
var timer = Stopwatch.StartNew();
await roslynAnalysis.GetProjectDiagnostics(sharpIdeApplicationProject, TestContext.Current.CancellationToken);
timer.Stop();
_testOutputHelper.WriteLine($"Diagnostics: {timer.ElapsedMilliseconds.ToString()}ms");
}
}
}

View File

@@ -21,4 +21,8 @@
<PackageReference Include="xunit.v3.mtp-v2" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\src\SharpIDE.Application\SharpIDE.Application.csproj" />
</ItemGroup>
</Project>

View File

@@ -1,10 +0,0 @@
namespace SharpIDE.Application.UnitTests;
public class UnitTest1
{
[Fact]
public void Test1()
{
true.Should().BeTrue();
}
}