diff --git a/src/coverlet.core/CoverageTracker.cs b/src/coverlet.core/CoverageTracker.cs index 0553d24..a2f1c2f 100644 --- a/src/coverlet.core/CoverageTracker.cs +++ b/src/coverlet.core/CoverageTracker.cs @@ -7,15 +7,21 @@ namespace Coverlet.Core { public static class CoverageTracker { - private static List _markers; - private static string _path; + private static Dictionary> _markers; private static bool _registered; [ExcludeFromCoverage] public static void MarkExecuted(string path, string marker) { if (_markers == null) - _markers = new List(); + { + _markers = new Dictionary>(); + } + + if (!_markers.ContainsKey(path)) + { + _markers.Add(path, new List()); + } if (!_registered) { @@ -23,11 +29,15 @@ namespace Coverlet.Core _registered = true; } - _markers.Add(marker); - _path = path; + _markers[path].Add(marker); } public static void CurrentDomain_ProcessExit(object sender, EventArgs e) - => File.WriteAllLines(_path, _markers); + { + foreach (var kvp in _markers) + { + File.WriteAllLines(kvp.Key, kvp.Value); + } + } } } \ No newline at end of file