private static async Task RunAsync(string projectPath, CancellationToken cancellationToken) { MSBuildLocator.RegisterDefaults(); var workspace = MSBuildWorkspace.Create(); workspace.LoadMetadataForReferencedProjects = true; var project = await workspace.OpenProjectAsync(projectPath, cancellationToken : cancellationToken); var converters = new ConverterBase[] { new MSTestToXUnitConverter(), new TestAssertTrueOrFalseConverter(), new AssertArgumentOrderConverter(), }; foreach (var converter in converters) { var solution = await converter.ProcessAsync(project, cancellationToken); project = solution.GetProject(project.Id); } workspace.TryApplyChanges(project.Solution); }
private static async Task RunAsync(string projectPath, CancellationToken cancellationToken) { var workspace = MSBuildWorkspace.Create(); workspace.LoadMetadataForReferencedProjects = true; var project = await workspace.OpenProjectAsync(projectPath, cancellationToken); var converters = new ConverterBase[] { new MSTestToXUnitConverter(), new TestAssertTrueOrFalseConverter() }; foreach (var converter in converters) { var solution = await converter.ProcessAsync(project, cancellationToken); project = solution.GetProject(project.Id); } workspace.TryApplyChanges(project.Solution); }
private static async Task RunAsync(string projectPath, CancellationToken cancellationToken) { var converters = new ConverterBase[] { new MSTestToXUnitConverter(), new TestAssertTrueOrFalseConverter(), new AssertArgumentOrderConverter(), }; AnalyzerManager manager = new AnalyzerManager(); ProjectAnalyzer analyzer = manager.GetProject(projectPath); Encoding s_utf8WithoutBom = new UTF8Encoding(false); using (var workspace = analyzer.GetWorkspace()) { var originalSolution = workspace.CurrentSolution; var project = originalSolution.Projects.FirstOrDefault(); foreach (var converter in converters) { var newSolution = await converter.ProcessAsync(project, cancellationToken); newSolution.GetChanges(originalSolution).GetProjectChanges().ToList().ForEach(proj => { var changedDocumentIds = proj.GetChangedDocuments(true).ToList(); changedDocumentIds.ForEach(documentId => { var document = newSolution.GetDocument(documentId); var text = document.GetTextAsync(); using (var writer = new StreamWriter(document.FilePath, append: false, encoding: text.Result.Encoding ?? s_utf8WithoutBom)) { text.Result.Write(writer); } }); }); //workspace.TryApplyChanges(project.Solution); } } }