public static TestManager Start(Project project, IDotNetCliService dotNetCli, IEventEmitter eventEmitter, ILoggerFactory loggerFactory) { var manager = Create(project, dotNetCli, eventEmitter, loggerFactory); manager.Connect(); return(manager); }
public TestServiceProvider( IOmniSharpEnvironment environment, ILoggerFactory loggerFactory, ISharedTextWriter sharedTextWriter, IConfiguration configuration, IEventEmitter eventEmitter, IDotNetCliService dotNetCliService = null) { _logger = loggerFactory.CreateLogger <TestServiceProvider>(); _services[typeof(IOptionsMonitor <OmniSharpOptions>)] = new OptionsMonitor <OmniSharpOptions>( new IConfigureOptions <OmniSharpOptions>[] { new ConfigureOptions <OmniSharpOptions>(c => ConfigurationBinder.Bind(configuration, c)) }, Enumerable.Empty <IOptionsChangeTokenSource <OmniSharpOptions> >() ); var assemblyLoader = new AssemblyLoader(loggerFactory); var msbuildLocator = MSBuildLocator.CreateStandAlone(loggerFactory, assemblyLoader, allowMonoPaths: false); var memoryCache = new MemoryCache(new MemoryCacheOptions()); dotNetCliService = dotNetCliService ?? new DotNetCliService(loggerFactory, eventEmitter); _services[typeof(ILoggerFactory)] = loggerFactory; _services[typeof(IOmniSharpEnvironment)] = environment; _services[typeof(IAssemblyLoader)] = assemblyLoader; _services[typeof(IMemoryCache)] = memoryCache; _services[typeof(ISharedTextWriter)] = sharedTextWriter; _services[typeof(IMSBuildLocator)] = msbuildLocator; _services[typeof(IEventEmitter)] = eventEmitter; _services[typeof(IDotNetCliService)] = dotNetCliService; }
public ProjectSystem( IOmniSharpEnvironment environment, OmniSharpWorkspace workspace, IMSBuildLocator msbuildLocator, IDotNetCliService dotNetCliService, SdksPathResolver sdksPathResolver, MetadataFileReferenceCache metadataFileReferenceCache, IEventEmitter eventEmitter, IFileSystemWatcher fileSystemWatcher, FileSystemHelper fileSystemHelper, ILoggerFactory loggerFactory) { _environment = environment; _workspace = workspace; _propertyOverrides = msbuildLocator.RegisteredInstance.PropertyOverrides; _dotNetCli = dotNetCliService; _sdksPathResolver = sdksPathResolver; _metadataFileReferenceCache = metadataFileReferenceCache; _eventEmitter = eventEmitter; _fileSystemWatcher = fileSystemWatcher; _fileSystemHelper = fileSystemHelper; _loggerFactory = loggerFactory; _projectsToProcess = new Queue <ProjectFileInfo>(); _logger = loggerFactory.CreateLogger <ProjectSystem>(); }
public PackageDependencyChecker(ILoggerFactory loggerFactory, IEventEmitter eventEmitter, IDotNetCliService dotNetCli, MSBuildOptions options) { _logger = loggerFactory.CreateLogger <PackageDependencyChecker>(); _eventEmitter = eventEmitter; _dotNetCli = dotNetCli; _options = options; }
private static IConfigurationRoot CreateConfiguration(IConfiguration configurationData, IDotNetCliService dotNetCliService) { var info = dotNetCliService.GetInfo(); var msbuildSdksPath = Path.Combine(info.BasePath, "Sdks"); var builder = new Microsoft.Extensions.Configuration.ConfigurationBuilder(); if (configurationData != null) { builder.AddConfiguration(configurationData); } // We need to set the "UseLegacySdkResolver" for tests because // MSBuild's SDK resolver will not be able to locate the .NET Core SDKs // that we install locally in the ".dotnet" directory. // This property will cause the MSBuild project loader to set the // MSBuildSDKsPath environment variable to the correct path "Sdks" folder // within the appropriate .NET Core SDK. var msbuildProperties = new Dictionary <string, string>() { [$"MSBuild:{nameof(MSBuildOptions.UseLegacySdkResolver)}"] = "true", [$"MSBuild:{nameof(MSBuildOptions.MSBuildSDKsPath)}"] = msbuildSdksPath }; builder.AddInMemoryCollection(msbuildProperties); return(builder.Build()); }
protected BaseTestService(OmniSharpWorkspace workspace, IDotNetCliService dotNetCli, IEventEmitter eventEmitter, ILoggerFactory loggerFactory) { Workspace = workspace; DotNetCli = dotNetCli; EventEmitter = eventEmitter; LoggerFactory = loggerFactory; }
public ProjectSystem( IOmniSharpEnvironment environment, OmniSharpWorkspace workspace, IMSBuildLocator msbuildLocator, IDotNetCliService dotNetCliService, SdksPathResolver sdksPathResolver, MetadataFileReferenceCache metadataFileReferenceCache, IEventEmitter eventEmitter, IFileSystemWatcher fileSystemWatcher, FileSystemHelper fileSystemHelper, ILoggerFactory loggerFactory, CachingCodeFixProviderForProjects codeFixesForProjects, RulesetsForProjects rulesetsForProjects, IAnalyzerAssemblyLoader assemblyLoader, [ImportMany] IEnumerable <IMSBuildEventSink> eventSinks) { _environment = environment; _workspace = workspace; _propertyOverrides = msbuildLocator.RegisteredInstance.PropertyOverrides; _dotNetCli = dotNetCliService; _sdksPathResolver = sdksPathResolver; _metadataFileReferenceCache = metadataFileReferenceCache; _eventEmitter = eventEmitter; _fileSystemWatcher = fileSystemWatcher; _fileSystemHelper = fileSystemHelper; _loggerFactory = loggerFactory; _rulesetsForProjects = rulesetsForProjects; _eventSinks = eventSinks.ToImmutableArray(); _projectsToProcess = new Queue <ProjectFileInfo>(); _logger = loggerFactory.CreateLogger <ProjectSystem>(); _assemblyLoader = assemblyLoader; }
private TestServiceProvider( IOmniSharpEnvironment environment, ILoggerFactory loggerFactory, IAssemblyLoader assemblyLoader, IAnalyzerAssemblyLoader analyzerAssemblyLoader, IMemoryCache memoryCache, ISharedTextWriter sharedTextWriter, IMSBuildLocator msbuildLocator, IEventEmitter eventEmitter, IDotNetCliService dotNetCliService, IConfigurationRoot configuration, IOptionsMonitor <OmniSharpOptions> optionsMonitor) { _logger = loggerFactory.CreateLogger <TestServiceProvider>(); AddService(environment); AddService(loggerFactory); AddService(assemblyLoader); AddService(memoryCache); AddService(sharedTextWriter); AddService(msbuildLocator); AddService(eventEmitter); AddService(dotNetCliService); AddService(configuration); AddService(optionsMonitor); AddService(analyzerAssemblyLoader); }
protected TestManager(Project project, string workingDirectory, IDotNetCliService dotNetCli, SemanticVersion dotNetCliVersion, IEventEmitter eventEmitter, ILogger logger) { Project = project ?? throw new ArgumentNullException(nameof(project)); WorkingDirectory = workingDirectory ?? throw new ArgumentNullException(nameof(workingDirectory)); DotNetCli = dotNetCli ?? throw new ArgumentNullException(nameof(dotNetCli)); DotNetCliVersion = dotNetCliVersion ?? throw new ArgumentNullException(nameof(dotNetCliVersion)); EventEmitter = eventEmitter ?? throw new ArgumentNullException(nameof(eventEmitter)); Logger = logger ?? throw new ArgumentNullException(nameof(logger)); }
public static TestManager Create(Project project, IDotNetCliService dotNetCli, IEventEmitter eventEmitter, ILoggerFactory loggerFactory) { var workingDirectory = Path.GetDirectoryName(project.FilePath); var version = dotNetCli.GetVersion(workingDirectory); return(dotNetCli.IsLegacy(version) ? new LegacyTestManager(project, workingDirectory, dotNetCli, version, eventEmitter, loggerFactory) : (TestManager) new VSTestManager(project, workingDirectory, dotNetCli, version, eventEmitter, loggerFactory)); }
public static TestManager Create(Project project, IDotNetCliService dotNetCli, IEventEmitter eventEmitter, ILoggerFactory loggerFactory) { var workingDirectory = Path.GetDirectoryName(project.FilePath); var version = dotNetCli.GetVersion(workingDirectory); if (dotNetCli.IsLegacy(version)) { throw new NotSupportedException("Legacy .NET SDK is not supported"); } return((TestManager) new VSTestManager(project, workingDirectory, dotNetCli, version, eventEmitter, loggerFactory)); }
public DotNetProjectSystem( IOmniSharpEnvironment environment, OmniSharpWorkspace workspace, IDotNetCliService dotNetCliService, MetadataFileReferenceCache metadataFileReferenceCache, IEventEmitter eventEmitter, IFileSystemWatcher fileSystemWatcher, ILoggerFactory loggerFactory) { _environment = environment; _workspace = workspace; _dotNetCliService = dotNetCliService; _metadataFileReferenceCache = metadataFileReferenceCache; _eventEmitter = eventEmitter; _fileSystemWatcher = fileSystemWatcher; _logger = loggerFactory.CreateLogger <DotNetProjectSystem>(); _projectStates = new ProjectStatesCache(loggerFactory, _eventEmitter); }
private TestServiceProvider( IOmniSharpEnvironment environment, ILoggerFactory loggerFactory, IAssemblyLoader assemblyLoader, IAnalyzerAssemblyLoader analyzerAssemblyLoader, ISharedTextWriter sharedTextWriter, IMSBuildLocator msbuildLocator, IEventEmitter eventEmitter, IDotNetCliService dotNetCliService, IConfigurationRoot configuration) { _logger = loggerFactory.CreateLogger <TestServiceProvider>(); var services = _services = new ServiceCollection(); services .AddLogging() .AddOptions() .AddMemoryCache(); services .AddSingleton(environment) .AddSingleton(loggerFactory) .AddSingleton(assemblyLoader) .AddSingleton(sharedTextWriter) .AddSingleton(msbuildLocator) .AddSingleton(eventEmitter) .AddSingleton(dotNetCliService) .AddSingleton(configuration) .AddSingleton(configuration as IConfiguration) .Configure <OmniSharpOptions>(configuration) .PostConfigure <OmniSharpOptions>(OmniSharpOptions.PostConfigure) .AddSingleton(analyzerAssemblyLoader); services.TryAddSingleton(_ => new ManualFileSystemWatcher()); services.TryAddSingleton <IFileSystemNotifier>(_ => _.GetRequiredService <ManualFileSystemWatcher>()); services.TryAddSingleton <IFileSystemWatcher>(_ => _.GetRequiredService <ManualFileSystemWatcher>()); _serviceProvider = services.BuildServiceProvider(); }
public ProjectManager( ILoggerFactory loggerFactory, MSBuildOptions options, IEventEmitter eventEmitter, IFileSystemWatcher fileSystemWatcher, MetadataFileReferenceCache metadataFileReferenceCache, PackageDependencyChecker packageDependencyChecker, ProjectLoader projectLoader, OmniSharpWorkspace workspace, IAnalyzerAssemblyLoader analyzerAssemblyLoader, ImmutableArray <IMSBuildEventSink> eventSinks, IDotNetCliService dotNetCliService) { _logger = loggerFactory.CreateLogger <ProjectManager>(); _options = options ?? new MSBuildOptions(); _eventEmitter = eventEmitter; _fileSystemWatcher = fileSystemWatcher; _metadataFileReferenceCache = metadataFileReferenceCache; _packageDependencyChecker = packageDependencyChecker; _projectFiles = new ProjectFileInfoCollection(); _failedToLoadProjectFiles = new HashSet <string>(StringComparer.OrdinalIgnoreCase); _projectsRequestedOnDemand = new ConcurrentDictionary <string, int>(StringComparer.OrdinalIgnoreCase); _projectLoader = projectLoader; _workspace = workspace; _eventSinks = eventSinks; _dotNetCli = dotNetCliService; _queue = new BufferBlock <ProjectToUpdate>(); _processLoopCancellation = new CancellationTokenSource(); _processLoopTask = Task.Run(() => ProcessLoopAsync(_processLoopCancellation.Token)); _analyzerAssemblyLoader = analyzerAssemblyLoader; _onDirectoryFileChanged = OnDirectoryFileChanged; if (_options.LoadProjectsOnDemand) { _workspace.AddWaitForProjectModelReadyHandler(WaitForProjectModelReadyAsync); } }
public SdksPathResolver(IDotNetCliService dotNetCli, ILoggerFactory loggerFactory) { _dotNetCli = dotNetCli; _logger = loggerFactory.CreateLogger <SdksPathResolver>(); }
protected BaseTestService(OmniSharpWorkspace workspace, IDotNetCliService dotNetCli, IEventEmitter eventEmitter, ILoggerFactory loggerFactory) : base(workspace, dotNetCli, eventEmitter, loggerFactory) { }
public RunTestsInContextService(OmniSharpWorkspace workspace, IDotNetCliService dotNetCli, IEventEmitter eventEmitter, ILoggerFactory loggerFactory) : base(workspace, dotNetCli, eventEmitter, loggerFactory) { }
public VSTestManager(Project project, string workingDirectory, IDotNetCliService dotNetCli, SemanticVersion dotNetCliVersion, IEventEmitter eventEmitter, ILoggerFactory loggerFactory) : base(project, workingDirectory, dotNetCli, dotNetCliVersion, eventEmitter, loggerFactory.CreateLogger <VSTestManager>()) { }
public GetTestStartInfoService(OmniSharpWorkspace workspace, IDotNetCliService dotNetCli, IEventEmitter eventEmitter, ILoggerFactory loggerFactory) : base(workspace, dotNetCli, eventEmitter, loggerFactory) { }
public DiscoverTestsService(OmniSharpWorkspace workspace, IDotNetCliService dotNetCli, IEventEmitter eventEmitter, ILoggerFactory loggerFactory) : base(workspace, dotNetCli, eventEmitter, loggerFactory) { }
public DebugTestService(DebugSessionManager debugSessionManager, OmniSharpWorkspace workspace, IDotNetCliService dotNetCli, IEventEmitter eventEmitter, ILoggerFactory loggerFactory) : base(workspace, dotNetCli, eventEmitter, loggerFactory) { _debugSessionManager = debugSessionManager; }