diff --git a/test/Shared/IdentityResultAssert.cs b/test/Shared/IdentityResultAssert.cs index 907aacecb1..9b941b234d 100644 --- a/test/Shared/IdentityResultAssert.cs +++ b/test/Shared/IdentityResultAssert.cs @@ -65,7 +65,10 @@ namespace Microsoft.AspNet.Identity.Test var fileLogger = logger as TestFileLogger; string expected = string.Format("{0} for {1}: {2} : Success", methodName, userOrRole, id); - Assert.True(File.ReadAllText(fileLogger.FileName).Contains(expected)); + lock (TestFileLogger.FileLock) + { + Assert.True(File.ReadAllText(fileLogger.FileName).Contains(expected)); + } } else { @@ -78,7 +81,10 @@ namespace Microsoft.AspNet.Identity.Test if (logger is TestFileLogger) { var fileLogger = logger as TestFileLogger; - Assert.True(File.ReadAllText(fileLogger.FileName).Contains(expectedLog)); + lock (TestFileLogger.FileLock) + { + Assert.True(File.ReadAllText(fileLogger.FileName).Contains(expectedLog)); + } } else { @@ -94,7 +100,10 @@ namespace Microsoft.AspNet.Identity.Test errors = errors ?? new IdentityError[] { new IdentityError() }; string expected = string.Format("{0} for {1}: {2} : Failed : {3}", methodName, userOrRole, userId, string.Join(",", errors.Select(x => x.Code).ToList())); - Assert.True(File.ReadAllText(fileLogger.FileName).Contains(expected)); + lock (TestFileLogger.FileLock) + { + Assert.True(File.ReadAllText(fileLogger.FileName).Contains(expected)); + } } else { diff --git a/test/Shared/TestFileLogger.cs b/test/Shared/TestFileLogger.cs index fe236f63f1..2124942b4c 100644 --- a/test/Shared/TestFileLogger.cs +++ b/test/Shared/TestFileLogger.cs @@ -18,9 +18,12 @@ namespace Microsoft.AspNet.Identity.Test var directory = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "IdentityTests"); Directory.CreateDirectory(directory); FileName = Path.Combine(directory, (name + DateTime.Now.Ticks + "log.txt")); - if (!File.Exists(FileName)) + lock (FileLock) { - File.Create(FileName).Close(); + if (!File.Exists(FileName)) + { + File.Create(FileName).Close(); + } } } diff --git a/test/Shared/TestFileLoggerFactory.cs b/test/Shared/TestFileLoggerFactory.cs index eb6f8f86f4..97ce20582e 100644 --- a/test/Shared/TestFileLoggerFactory.cs +++ b/test/Shared/TestFileLoggerFactory.cs @@ -27,7 +27,14 @@ namespace Microsoft.AspNet.Identity.Test { if (!_loggers.ContainsKey(name)) { - _loggers.Add(name, new TestFileLogger(name)); + try + { + _loggers.Add(name, new TestFileLogger(name)); + } + catch (ArgumentException ex) + { + // Silently skip if there is already a logger with that key + } } return _loggers[name];