Browse Source

Fix IOException when running code coverage.

Running unit tests with code coverage would intermittently throw an
IOException:

System.IO.IOException: The process cannot access the file
'...OpenCover\coverage.xml'
pull/607/head
Matt Ward 12 years ago
parent
commit
92f9c3ab36
  1. 5
      src/AddIns/Analysis/CodeCoverage/Project/Src/CodeCoverageResultsReader.cs
  2. 7
      src/AddIns/Analysis/CodeCoverage/Project/Src/RunTestWithCodeCoverageCommand.cs

5
src/AddIns/Analysis/CodeCoverage/Project/Src/CodeCoverageResultsReader.cs

@ -52,8 +52,9 @@ namespace ICSharpCode.CodeCoverage @@ -52,8 +52,9 @@ namespace ICSharpCode.CodeCoverage
CodeCoverageResults ReadCodeCoverageResults(string fileName)
{
TextReader reader = fileSystem.OpenText(FileName.Create(fileName));
return new CodeCoverageResults(reader);
using (TextReader reader = fileSystem.OpenText(FileName.Create(fileName))) {
return new CodeCoverageResults(reader);
}
}
public IEnumerable<string> GetMissingResultsFiles()

7
src/AddIns/Analysis/CodeCoverage/Project/Src/RunTestWithCodeCoverageCommand.cs

@ -119,7 +119,7 @@ namespace ICSharpCode.CodeCoverage @@ -119,7 +119,7 @@ namespace ICSharpCode.CodeCoverage
void DisplayCodeCoverageResults(CodeCoverageResultsReader coverageResultsReader)
{
foreach (CodeCoverageResults result in coverageResultsReader.GetResults()) {
foreach (CodeCoverageResults result in GetResults(coverageResultsReader)) {
DisplayCodeCoverageResults(result);
}
foreach (string missingFile in coverageResultsReader.GetMissingResultsFiles()) {
@ -127,6 +127,11 @@ namespace ICSharpCode.CodeCoverage @@ -127,6 +127,11 @@ namespace ICSharpCode.CodeCoverage
}
}
IEnumerable<CodeCoverageResults> GetResults(CodeCoverageResultsReader coverageResultsReader)
{
return SD.MainThread.InvokeIfRequired(() => coverageResultsReader.GetResults().ToList());
}
void DisplayCodeCoverageResults(CodeCoverageResults results)
{
SD.MainThread.InvokeIfRequired(() => CodeCoverageService.ShowResults(results));

Loading…
Cancel
Save