/// <summary> /// Initializes a new <see cref="VSTestContainerDiscoverer"/>. /// </summary> /// <param name="serviceProvider">Provides access to Visual Studio services</param> /// <param name="logger">Object that logs messages</param> /// <param name="solutionMonitor">Monitors a solution for changes</param> /// <param name="projectFileMonitor">Monitors a project for changes to its child items</param> /// <param name="fileWatcher">A file system watcher</param> /// <param name="containerFactory">Creates new <see cref="ITestContainer"/>s</param> public VSTestContainerDiscoverer( IServiceProvider serviceProvider, ILogger logger, ISolutionMonitor solutionMonitor, IProjectFileMonitor projectFileMonitor, IFileSystemWatcher fileWatcher, Func <ITestContainerDiscoverer, string, IVsProject, IVSTestContainer> containerFactory) { _serviceProvider = ValidateArg.NotNull(serviceProvider, "serviceProvider"); _logger = ValidateArg.NotNull(logger, "logger"); _solutionMonitor = ValidateArg.NotNull(solutionMonitor, "solutionMonitor"); _projectFileMonitor = ValidateArg.NotNull(projectFileMonitor, "projectFileMonitor"); _fileWatcher = ValidateArg.NotNull(fileWatcher, "fileWatcher"); _containerFactory = ValidateArg.NotNull(containerFactory, "containerFactory"); _solutionMonitor.SolutionChanged += solutionMonitor_SolutionChanged; _solutionMonitor.ProjectChanged += solutionMonitor_ProjectChanged; _solutionMonitor.StartMonitoring(); _projectFileMonitor.FileChanged += projectFileMonitor_FileChanged; _projectFileMonitor.StartMonitoring(); _fileWatcher.NotifyFilter = NotifyFilters.LastWrite; _fileWatcher.Filter = String.Format("*{0}", TestScript.FileExtension); _fileWatcher.IncludeSubdirectories = true; _fileWatcher.Error += fileWatcher_Error; }
public VSTestContainerDiscoverer( [Import(typeof(SVsServiceProvider))] IServiceProvider serviceProvider, ISolutionMonitor solutionMonitor, IProjectFileMonitor projectFileMonitor) : this(serviceProvider, new ActivityLogger(serviceProvider.GetService <IVsActivityLog, SVsActivityLog>(), typeof(VSTestContainerDiscoverer)), solutionMonitor, projectFileMonitor, new FileSystemWatcherAdapter(new FileSystemWatcher()), (disc, file, project) => new PowerShellTestContainer(disc, file, project)) { }