public void ExecuteWithSettingsForExecutable(string executable, Action action, ILogger logger) { lock (_lock) { CheckCorrectUsage(executable); _nrOfRunningExecutions++; if (_nrOfRunningExecutions == 1) { _currentExecutable = executable; _currentThread = Thread.CurrentThread; var projectSettings = _settingsContainer.GetSettingsForExecutable(executable); if (projectSettings != null) { _currentSettings = projectSettings; string settingsString = ToString(); _currentSettings = _settingsContainer.SolutionSettings; logger.DebugInfo(String.Format(Resources.SettingsMessage, executable, settingsString)); _currentSettings = projectSettings; } else { logger.DebugInfo(String.Format(Resources.NoSettingConfigured, executable, this)); } } } try { action.Invoke(); } finally { lock (_lock) { _nrOfRunningExecutions--; if (_nrOfRunningExecutions == 0) { _currentExecutable = null; _currentThread = null; if (_currentSettings != _settingsContainer.SolutionSettings) { _currentSettings = _settingsContainer.SolutionSettings; logger.DebugInfo(String.Format(Resources.RestoringSolutionSettings, this)); } } } } }
public void ExecuteWithSettingsForExecutable(string executable, Action action, ILogger logger) { lock (_lock) { CheckCorrectUsage(executable); _nrOfRunningExecutions++; if (_nrOfRunningExecutions == 1) { _currentExecutable = executable; _currentThread = Thread.CurrentThread; var projectSettings = _settingsContainer.GetSettingsForExecutable(executable); if (projectSettings != null) { _currentSettings = projectSettings; string settingsString = ToString(); _currentSettings = _settingsContainer.SolutionSettings; logger.DebugInfo($"Settings for test executable '{executable}': {settingsString}"); _currentSettings = projectSettings; } else { logger.DebugInfo($"No settings configured for test executable '{executable}'; running with solution settings: {this}"); } } } try { action.Invoke(); } finally { lock (_lock) { _nrOfRunningExecutions--; if (_nrOfRunningExecutions == 0) { _currentExecutable = null; _currentThread = null; if (_currentSettings != _settingsContainer.SolutionSettings) { _currentSettings = _settingsContainer.SolutionSettings; logger.DebugInfo($"Back to solution settings: {this}"); } } } } }
public void ExecuteWithSettingsForExecutable(string executable, Action action, ILogger logger) { var formerSettings = _currentSettings; try { _currentSettings = _settingsContainer.GetSettingsForExecutable(executable); logger.DebugInfo($"Settings for test executable '{executable}': {this}"); action.Invoke(); } finally { _currentSettings = formerSettings; logger.DebugInfo($"Back to solution settings: {this}"); } }