public async Task<CoverageResult> CalculateForAllDocumentsAsync()
        {
            var rewritter = new SolutionRewriter(new RewrittenDocumentsStorage(), _auditVariablesRewriter);

            //TODO: Change a method to async and don't use .Result
            var projects = await _testExplorer.GetUnignoredTestProjectsWithCoveredProjectsAsync().ConfigureAwait(false);
            RewriteResult rewrittenResult = rewritter.RewriteAllClasses(projects);

            LineCoverage[] coverage = null;

            using (var appDomainTestExecutorScriptEngine = new AppDomainTestExecutorScriptEngine())
            {
                var lineCoverageCalc = new LineCoverageCalc(_testExplorer, new RoslynCompiler(), new TestRunner(new NUnitTestExtractor(), appDomainTestExecutorScriptEngine, _solutionExplorer));

                coverage = lineCoverageCalc.CalculateForAllTests(rewrittenResult);
            }

            _coverageStore.WriteAll(coverage);

            return new CoverageResult(coverage);
        }