Пример #1
0
        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);
        }
Пример #3
0
        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);
                }
            }
        }