public ChutzpahTestContainerDiscoverer(IServiceProvider serviceProvider, IChutzpahSettingsMapper settingsMapper, ILogger logger, ISolutionEventsListener solutionListener, ITestFilesUpdateWatcher testFilesUpdateWatcher, ITestFileAddRemoveListener testFilesAddRemoveListener, ITestRunner testRunner, IFileProbe fileProbe, IChutzpahTestSettingsService chutzpahTestSettingsService) { initialContainerSearch = true; cachedContainers = new ConcurrentDictionary <string, ITestContainer>(StringComparer.OrdinalIgnoreCase); this.serviceProvider = serviceProvider; this.settingsMapper = settingsMapper; this.logger = logger; this.testRunner = testRunner; this.fileProbe = fileProbe; this.chutzpahTestSettingsService = chutzpahTestSettingsService; this.solutionListener = solutionListener; this.testFilesUpdateWatcher = testFilesUpdateWatcher; this.testFilesAddRemoveListener = testFilesAddRemoveListener; this.testFilesAddRemoveListener.TestFileChanged += OnProjectItemChanged; this.testFilesAddRemoveListener.StartListeningForTestFileChanges(); this.solutionListener.SolutionUnloaded += SolutionListenerOnSolutionUnloaded; this.solutionListener.SolutionProjectChanged += OnSolutionProjectChanged; this.solutionListener.StartListeningForChanges(); this.testFilesUpdateWatcher.FileChangedEvent += OnProjectItemChanged; }
public TestRunner(IProcessHelper process, ITestCaseStreamReaderFactory testCaseStreamReaderFactory, IFileProbe fileProbe, IBatchCompilerService batchCompilerService, ITestHarnessBuilder testHarnessBuilder, ITestContextBuilder htmlTestFileCreator, IChutzpahTestSettingsService testSettingsService, ITransformProcessor transformProcessor, IChutzpahWebServerFactory webServerFactory, IUrlBuilder urlBuilder, IList <ITestExecutionProvider> testExecutionProviders) { this.urlBuilder = urlBuilder; this.process = process; this.testCaseStreamReaderFactory = testCaseStreamReaderFactory; this.fileProbe = fileProbe; this.batchCompilerService = batchCompilerService; this.testHarnessBuilder = testHarnessBuilder; stopWatch = new Stopwatch(); testContextBuilder = htmlTestFileCreator; this.testSettingsService = testSettingsService; this.transformProcessor = transformProcessor; this.webServerFactory = webServerFactory; this.testExecutionProviders = testExecutionProviders; }
public ChutzpahTestContainerDiscoverer(IServiceProvider serviceProvider, IChutzpahSettingsMapper settingsMapper, ILogger logger, ISolutionEventsListener solutionListener, ITestFilesUpdateWatcher testFilesUpdateWatcher, ITestFileAddRemoveListener testFilesAddRemoveListener, ITestRunner testRunner, IFileProbe fileProbe) { initialContainerSearch = true; cachedContainers = new List<ITestContainer>(); this.serviceProvider = serviceProvider; this.settingsMapper = settingsMapper; this.logger = logger; this.testRunner = testRunner; this.fileProbe = fileProbe; this.solutionListener = solutionListener; this.testFilesUpdateWatcher = testFilesUpdateWatcher; this.testFilesAddRemoveListener = testFilesAddRemoveListener; this.testFilesAddRemoveListener.TestFileChanged += OnProjectItemChanged; this.testFilesAddRemoveListener.StartListeningForTestFileChanges(); this.solutionListener.SolutionUnloaded += SolutionListenerOnSolutionUnloaded; this.solutionListener.SolutionProjectChanged += OnSolutionProjectChanged; this.solutionListener.StartListeningForChanges(); this.testFilesUpdateWatcher.FileChangedEvent += OnProjectItemChanged; }
public ChutzpahTestSettingsService(IFileProbe fileProbe, IJsonSerializer serializer, IFileSystemWrapper fileSystem) { this.fileProbe = fileProbe; this.serializer = serializer; this.fileSystem = fileSystem; }
public TestHarnessBuilder( IReferenceProcessor referenceProcessor, IFileSystemWrapper fileSystem, IFileProbe fileProbe, IHasher hasher) { this.referenceProcessor = referenceProcessor; this.fileSystem = fileSystem; this.fileProbe = fileProbe; this.hasher = hasher; }
public TestRunner(IProcessHelper process, ITestCaseStreamReaderFactory testCaseStreamReaderFactory, IFileProbe fileProbe, ITestContextBuilder htmlTestFileCreator, ICompilerCache compilerCache) { this.process = process; this.testCaseStreamReaderFactory = testCaseStreamReaderFactory; this.fileProbe = fileProbe; stopWatch = new Stopwatch(); testContextBuilder = htmlTestFileCreator; this.compilerCache = compilerCache; }
public PhantomTestExecutionProvider(IProcessHelper process, IFileProbe fileProbe, IUrlBuilder urlBuilder, ITestCaseStreamReaderFactory readerFactory) { this.processTools = process; this.fileProbe = fileProbe; this.urlBuilder = urlBuilder; this.headlessBrowserPath = fileProbe.FindFilePath(HeadlessBrowserName); if (headlessBrowserPath == null) { throw new FileNotFoundException("Unable to find headless browser: " + HeadlessBrowserName); } this.readerFactory = readerFactory; }
public TestContextBuilder( IFileSystemWrapper fileSystem, IReferenceProcessor referenceProcessor, IHttpWrapper httpWrapper, IFileProbe fileProbe, ICoverageEngineFactory coverageEngineFactory, IEnumerable<IFrameworkDefinition> frameworkDefinitions, IChutzpahTestSettingsService settingsService) { this.referenceProcessor = referenceProcessor; this.httpClient = httpWrapper; this.fileSystem = fileSystem; this.fileProbe = fileProbe; this.frameworkDefinitions = frameworkDefinitions; this.settingsService = settingsService; this.coverageEngineFactory = coverageEngineFactory; }
public TestContextBuilder( IFileSystemWrapper fileSystem, IReferenceProcessor referenceProcessor, IHttpWrapper httpWrapper, IFileProbe fileProbe, ICoverageEngineFactory coverageEngineFactory, IEnumerable <IFrameworkDefinition> frameworkDefinitions, IChutzpahTestSettingsService settingsService) { this.referenceProcessor = referenceProcessor; this.httpClient = httpWrapper; this.fileSystem = fileSystem; this.fileProbe = fileProbe; this.frameworkDefinitions = frameworkDefinitions; this.settingsService = settingsService; this.coverageEngineFactory = coverageEngineFactory; }
public TestRunner(IProcessHelper process, ITestCaseStreamReaderFactory testCaseStreamReaderFactory, IFileProbe fileProbe, IBatchCompilerService batchCompilerService, ITestHarnessBuilder testHarnessBuilder, ITestContextBuilder htmlTestFileCreator, ICompilerCache compilerCache, IChutzpahTestSettingsService testSettingsService) { this.process = process; this.testCaseStreamReaderFactory = testCaseStreamReaderFactory; this.fileProbe = fileProbe; this.batchCompilerService = batchCompilerService; this.testHarnessBuilder = testHarnessBuilder; stopWatch = new Stopwatch(); testContextBuilder = htmlTestFileCreator; this.compilerCache = compilerCache; this.testSettingsService = testSettingsService; }
public TestRunner(IProcessHelper process, ITestCaseStreamReaderFactory testCaseStreamReaderFactory, IFileProbe fileProbe, IBatchCompilerService batchCompilerService, ITestHarnessBuilder testHarnessBuilder, ITestContextBuilder htmlTestFileCreator, IChutzpahTestSettingsService testSettingsService, ITransformProcessor transformProcessor) { this.process = process; this.testCaseStreamReaderFactory = testCaseStreamReaderFactory; this.fileProbe = fileProbe; this.batchCompilerService = batchCompilerService; this.testHarnessBuilder = testHarnessBuilder; stopWatch = new Stopwatch(); testContextBuilder = htmlTestFileCreator; this.testSettingsService = testSettingsService; this.transformProcessor = transformProcessor; }
public NodeTestExecutionProvider(IProcessHelper process, IFileProbe fileProbe, IUrlBuilder urlBuilder, ITestCaseStreamReaderFactory readerFactory) { this.processTools = process; this.fileProbe = fileProbe; this.urlBuilder = urlBuilder; var path = Path.Combine("Node", Environment.Is64BitProcess ? "x64" : "x86", HeadlessBrowserName); this.headlessBrowserPath = fileProbe.FindFilePath(path); if (path == null) { throw new FileNotFoundException("Unable to find node: " + path); } this.readerFactory = readerFactory; isRunningElevated = process.IsRunningElevated(); }
public TestContextBuilder( IReferenceProcessor referenceProcessor, IFileSystemWrapper fileSystem, IHttpWrapper httpWrapper, IFileProbe fileProbe, IHasher hasher, ICoverageEngine coverageEngine, IJsonSerializer serializer, IEnumerable<IFrameworkDefinition> frameworkDefinitions, IEnumerable<IFileGenerator> fileGenerators) { this.referenceProcessor = referenceProcessor; this.httpClient = httpWrapper; this.fileSystem = fileSystem; this.fileProbe = fileProbe; this.hasher = hasher; this.serializer = serializer; this.frameworkDefinitions = frameworkDefinitions; this.fileGenerators = fileGenerators; mainCoverageEngine = coverageEngine; }
public ReferenceProcessor(IFileSystemWrapper fileSystem, IFileProbe fileProbe, IUrlBuilder urlBuilder) { this.urlBuilder = urlBuilder; this.fileSystem = fileSystem; this.fileProbe = fileProbe; }
public ReferenceProcessor(IFileSystemWrapper fileSystem, IFileProbe fileProbe) { this.fileSystem = fileSystem; this.fileProbe = fileProbe; }
public ChutzpahTestContainerDiscoverer(IServiceProvider serviceProvider, IChutzpahSettingsMapper settingsMapper, ILogger logger, ISolutionEventsListener solutionListener, ITestFilesUpdateWatcher testFilesUpdateWatcher, ITestFileAddRemoveListener testFilesAddRemoveListener, ITestRunner testRunner, IFileProbe fileProbe, IChutzpahTestSettingsService chutzpahTestSettingsService) { initialContainerSearch = true; cachedContainers = new ConcurrentDictionary<string, ITestContainer>(StringComparer.OrdinalIgnoreCase); this.serviceProvider = serviceProvider; this.settingsMapper = settingsMapper; this.logger = logger; this.testRunner = testRunner; this.fileProbe = fileProbe; this.chutzpahTestSettingsService = chutzpahTestSettingsService; this.solutionListener = solutionListener; this.testFilesUpdateWatcher = testFilesUpdateWatcher; this.testFilesAddRemoveListener = testFilesAddRemoveListener; this.testFilesAddRemoveListener.TestFileChanged += OnProjectItemChanged; this.testFilesAddRemoveListener.StartListeningForTestFileChanges(); this.solutionListener.SolutionUnloaded += SolutionListenerOnSolutionUnloaded; this.solutionListener.SolutionProjectChanged += OnSolutionProjectChanged; this.solutionListener.StartListeningForChanges(); this.testFilesUpdateWatcher.FileChangedEvent += OnProjectItemChanged; }
public ChutzpahWebServerFactory(IFileProbe fileProbe) { this.fileProbe = fileProbe; }
public UrlBuilder(IFileProbe fileProbe) { this.fileProbe = fileProbe; }
/// <summary> /// Find and reads a chutzpah test settings file given a direcotry. If none is found a default settings object is created /// </summary> /// <param name="directory"></param> /// <param name="fileProbe"></param> /// <param name="serializer"></param> /// <returns></returns> public static ChutzpahTestSettingsFile Read(string directory, IFileProbe fileProbe, IJsonSerializer serializer) { if (string.IsNullOrEmpty(directory)) return new ChutzpahTestSettingsFile(); directory = directory.TrimEnd('/', '\\'); ChutzpahTestSettingsFile settings; if (!ChutzpahSettingsFileCache.TryGetValue(directory, out settings)) { var testSettingsFilePath = fileProbe.FindTestSettingsFile(directory); if(string.IsNullOrEmpty(testSettingsFilePath)) { settings = new ChutzpahTestSettingsFile(); } else if (!ChutzpahSettingsFileCache.TryGetValue(testSettingsFilePath, out settings)) { settings = serializer.DeserializeFromFile<ChutzpahTestSettingsFile>(testSettingsFilePath); settings.SettingsFileDirectory = Path.GetDirectoryName(testSettingsFilePath); ValidateTestHarnessLocationMode(settings, fileProbe); // Add a mapping in the cache for the directory that contains the test settings file ChutzpahSettingsFileCache.TryAdd(settings.SettingsFileDirectory, settings); } // Add mapping in the cache for the original directory tried to skip needing to traverse the tree again ChutzpahSettingsFileCache.TryAdd(directory, settings); } return settings; }
private static void ValidateTestHarnessLocationMode(ChutzpahTestSettingsFile settings, IFileProbe fileProbe) { if (settings.TestHarnessLocationMode == TestHarnessLocationMode.Custom) { if (settings.TestHarnessDirectory != null) { string relativeLocationPath = Path.Combine(settings.SettingsFileDirectory, settings.TestHarnessDirectory); string absoluteFilePath = fileProbe.FindFolderPath(relativeLocationPath); settings.TestHarnessDirectory = absoluteFilePath; } if (settings.TestHarnessDirectory == null) { settings.TestHarnessLocationMode = TestHarnessLocationMode.TestFileAdjacent; ChutzpahTracer.TraceWarning("Unable to find custom test harness directory at {0}", settings.TestHarnessDirectory); } } }