/// <summary> /// Initializes the data collector /// </summary> /// <param name="configurationElement"> /// The XML element containing configuration information for the data collector. Currently, /// this data collector does not have any configuration, so we ignore this parameter. /// </param> /// <param name="events"> /// Object containing the execution events the data collector registers for /// </param> /// <param name="dataSink">The sink used by the data collector to send its data</param> /// <param name="logger"> /// Used by the data collector to send warnings, errors, or other messages /// </param> /// <param name="dataCollectionEnvironmentContext">Provides contextual information about the agent environment</param> public override void Initialize( XmlElement configurationElement, DataCollectionEvents events, DataCollectionSink dataSink, DataCollectionLogger logger, DataCollectionEnvironmentContext dataCollectionEnvironmentContext) { ValidateArg.NotNull(events, nameof(events)); ValidateArg.NotNull(dataSink, nameof(dataSink)); ValidateArg.NotNull(logger, nameof(logger)); this.events = events; this.dataSink = dataSink; this.logger = logger; this.dataCollectorContext = dataCollectionEnvironmentContext.SessionDataCollectionContext; // Load the configuration CollectorNameValueConfigurationManager nameValueSettings = new CollectorNameValueConfigurationManager(configurationElement); // Apply the configuration this.ConfigureEventSources(nameValueSettings); this.ConfigureEntryTypes(nameValueSettings); this.ConfigureMaxEntries(nameValueSettings); this.ConfigureEventLogNames(nameValueSettings); // Register for events events.SessionStart += this.sessionStartEventHandler; events.SessionEnd += this.sessionEndEventHandler; events.TestCaseStart += this.testCaseStartEventHandler; events.TestCaseEnd += this.testCaseEndEventHandler; }
/// <summary> /// Initializes parameters for the new instance of the class <see cref="BlameDataCollector"/> /// </summary> /// <param name="configurationElement">The Xml Element to save to</param> /// <param name="events">Data collection events to which methods subscribe</param> /// <param name="dataSink">A data collection sink for data transfer</param> /// <param name="logger">Data Collection Logger to send messages to the client </param> /// <param name="environmentContext">Context of data collector environment</param> public override void Initialize( XmlElement configurationElement, DataCollectionEvents events, DataCollectionSink dataSink, DataCollectionLogger logger, DataCollectionEnvironmentContext environmentContext) { ValidateArg.NotNull(logger, nameof(logger)); this.events = events; this.dataCollectionSink = dataSink; this.context = environmentContext; this.configurationElement = configurationElement; this.testSequence = new List <TestCase>(); this.logger = logger; // Subscribing to events this.events.TestHostLaunched += this.TestHostLaunched_Handler; this.events.SessionEnd += this.SessionEnded_Handler; this.events.TestCaseStart += this.EventsTestCaseStart; this.events.TestCaseEnd += this.EventsTestCaseEnd; if (this.configurationElement != null) { this.processDumpEnabled = this.configurationElement[Constants.DumpModeKey] != null; } this.attachmentGuid = Guid.NewGuid().ToString().Replace("-", string.Empty); }
public override void Initialize( System.Xml.XmlElement configurationElement, DataCollectionEvents events, DataCollectionSink dataSink, DataCollectionLogger logger, DataCollectionEnvironmentContext environmentContext) { log = new Lazy <CloudwatchLogsSink>(() => // have to wait as late as possible for DataCollector to bind the right assembly versions new ServiceCollection() .AddAlteredAws() .AddCloudwatchLogs() .BuildServiceProvider() .GetService <CloudwatchLogsSink>()); log2 = logger; events.TestHostLaunched += TestHostLaunched_Handler; events.SessionStart += SessionStarted_Handler; events.SessionEnd += SessionEnded_Handler; events.TestCaseStart += Events_TestCaseStart; events.TestCaseEnd += Events_TestCaseEnd; dataSink.SendFileCompleted += DataSink_SendFileCompleted; }
/// <summary> /// Initializes data collector /// </summary> /// <param name="configurationElement">Configuration element</param> /// <param name="events">Events to register on</param> /// <param name="dataSink">Data sink to send attachments to test platform</param> /// <param name="logger">Test platform logger</param> /// <param name="environmentContext">Environment context</param> public override void Initialize( XmlElement configurationElement, DataCollectionEvents events, DataCollectionSink dataSink, DataCollectionLogger logger, DataCollectionEnvironmentContext environmentContext) { AttachDebugger(); if (_eqtTrace.IsInfoEnabled) { _eqtTrace.Info("Initializing {0} with configuration: '{1}'", CoverletConstants.DataCollectorName, configurationElement?.OuterXml); } // Store input variables _events = events; _configurationElement = configurationElement; _dataSink = dataSink; _dataCollectionContext = environmentContext.SessionDataCollectionContext; _logger = new TestPlatformLogger(logger, _dataCollectionContext); // Register events _events.SessionStart += OnSessionStart; _events.SessionEnd += OnSessionEnd; }
/// <summary> /// Initializes a new instance of the <see cref="BlameCollectorTests"/> class. /// </summary> public BlameCollectorTests() { // Initializing mocks this.mockLogger = new Mock <DataCollectionLogger>(); this.mockDataColectionEvents = new Mock <DataCollectionEvents>(); this.mockDataCollectionSink = new Mock <DataCollectionSink>(); this.mockBlameReaderWriter = new Mock <IBlameReaderWriter>(); this.mockProcessDumpUtility = new Mock <IProcessDumpUtility>(); this.mockInactivityTimer = new Mock <IInactivityTimer>(); this.mockFileHelper = new Mock <IFileHelper>(); this.blameDataCollector = new TestableBlameCollector( this.mockBlameReaderWriter.Object, this.mockProcessDumpUtility.Object, this.mockInactivityTimer.Object, this.mockFileHelper.Object); // Initializing members TestCase testcase = new TestCase { Id = Guid.NewGuid() }; this.dataCollectionContext = new DataCollectionContext(testcase); this.configurationElement = null; this.context = new DataCollectionEnvironmentContext(this.dataCollectionContext); this.filepath = Path.Combine(Path.GetTempPath(), "Test"); FileStream stream = File.Create(this.filepath); stream.Dispose(); }
/// <summary> /// Creates an environment context for a local (hosted) agent and controller /// </summary> /// <param name="sessionDataCollectionContext">Session level data collection context.</param> /// <returns>An environment context for a local (hosted) agent and controller</returns> public static DataCollectionEnvironmentContext CreateForLocalEnvironment(DataCollectionContext sessionDataCollectionContext) { var dataCollectionEnvironmentContext = new DataCollectionEnvironmentContext(); dataCollectionEnvironmentContext.SessionDataCollectionContext = sessionDataCollectionContext; return(dataCollectionEnvironmentContext); }
public override void Initialize( XmlElement configurationElement, DataCollectionEvents events, DataCollectionSink dataSink, DataCollectionLogger logger, DataCollectionEnvironmentContext environmentContext) { }
/// <inheritdoc/> public IDictionary <string, string> InitializeDataCollectors(string settingsXml) { if (string.IsNullOrEmpty(settingsXml) && EqtTrace.IsInfoEnabled) { EqtTrace.Info("DataCollectionManager.InitializeDataCollectors : Runsettings is null or empty."); } ValidateArg.NotNull(settingsXml, "settingsXml"); var sessionId = new SessionId(Guid.NewGuid()); var dataCollectionContext = new DataCollectionContext(sessionId); this.dataCollectionEnvironmentContext = DataCollectionEnvironmentContext.CreateForLocalEnvironment(dataCollectionContext); this.attachmentManager.Initialize(sessionId, sourceDirectory, this.messageSink); // Enviornment variables are passed to testhost process, through ProcessStartInfo.EnvironmentVariables, which handles the key in a case-insensitive manner, which is translated to lowercase. // Therefore, using StringComparer.OrdinalIgnoreCase so that same keys with different cases are treated as same. var executionEnvironmentVariables = new Dictionary <string, string>(StringComparer.OrdinalIgnoreCase); var runConfiguration = XmlRunSettingsUtilities.GetRunConfigurationNode(settingsXml); sourceDirectory = RunSettingsUtilities.GetTestResultsDirectory(runConfiguration); var dataCollectionRunSettings = XmlRunSettingsUtilities.GetDataCollectionRunSettings(settingsXml); this.isDataCollectionEnabled = dataCollectionRunSettings.IsCollectionEnabled; // If dataCollectionRunSettings is null, that means datacollectors are not configured. if (dataCollectionRunSettings == null || !dataCollectionRunSettings.IsCollectionEnabled) { return(executionEnvironmentVariables); } // Get settings for each data collector, load and initialize the data collectors. var enabledDataCollectorsSettings = this.GetDataCollectorsEnabledForRun(dataCollectionRunSettings); if (enabledDataCollectorsSettings == null || enabledDataCollectorsSettings.Count == 0) { return(executionEnvironmentVariables); } foreach (var dataCollectorSettings in enabledDataCollectorsSettings) { this.LoadAndInitialize(dataCollectorSettings); } // Once all data collectors have been initialized, query for environment variables bool unloadedAnyCollector; var dataCollectorEnvironmentVariables = this.GetEnvironmentVariables(out unloadedAnyCollector); foreach (var variable in dataCollectorEnvironmentVariables.Values) { executionEnvironmentVariables.Add(variable.Name, variable.Value); } return(executionEnvironmentVariables); }
public override void Initialize( XmlElement configurationElement, DataCollectionEvents events, DataCollectionSink dataSink, DataCollectionLogger logger, DataCollectionEnvironmentContext environmentContext) { tracerPath = configurationElement["TracerPath"].InnerText; outputDir = configurationElement["OutputDir"].InnerText; }
/// <summary> /// Initializes parameters for the new instance of the class <see cref="BlameDataCollector"/> /// </summary> /// <param name="configurationElement">The Xml Element to save to</param> /// <param name="events">Data collection events to which methods subscribe</param> /// <param name="dataSink">A data collection sink for data transfer</param> /// <param name="logger">Data Collection Logger to send messages to the client </param> /// <param name="environmentContext">Context of data collector environment</param> public override void Initialize( XmlElement configurationElement, DataCollectionEvents events, DataCollectionSink dataSink, DataCollectionLogger logger, DataCollectionEnvironmentContext environmentContext) { ValidateArg.NotNull(logger, nameof(logger)); this.events = events; this.dataCollectionSink = dataSink; this.context = environmentContext; this.configurationElement = configurationElement; this.testSequence = new List <Guid>(); this.testObjectDictionary = new Dictionary <Guid, BlameTestObject>(); this.logger = logger; // Subscribing to events this.events.TestHostLaunched += this.TestHostLaunchedHandler; this.events.SessionEnd += this.SessionEndedHandler; this.events.TestCaseStart += this.EventsTestCaseStart; this.events.TestCaseEnd += this.EventsTestCaseEnd; if (this.configurationElement != null) { var collectDumpNode = this.configurationElement[Constants.DumpModeKey]; this.collectProcessDumpOnTrigger = collectDumpNode != null; if (this.collectProcessDumpOnTrigger) { this.ValidateAndAddTriggerBasedProcessDumpParameters(collectDumpNode); } var collectHangBasedDumpNode = this.configurationElement[Constants.CollectDumpOnTestSessionHang]; this.collectProcessDumpOnTestHostHang = collectHangBasedDumpNode != null; if (this.collectProcessDumpOnTestHostHang) { this.ValidateAndAddHangBasedProcessDumpParameters(collectHangBasedDumpNode); } var tfm = this.configurationElement[Constants.TargetFramework]?.InnerText; if (!string.IsNullOrWhiteSpace(tfm)) { this.targetFramework = tfm; } } this.attachmentGuid = Guid.NewGuid().ToString().Replace("-", string.Empty); if (this.collectProcessDumpOnTestHostHang) { this.inactivityTimer = this.inactivityTimer ?? new InactivityTimer(this.CollectDumpAndAbortTesthost); this.ResetInactivityTimer(); } }
public override void Initialize( XmlElement configurationElement, DataCollectionEvents events, DataCollectionSink dataSink, DataCollectionLogger logger, DataCollectionEnvironmentContext environmentContext) { events.SessionEnd += SessionEnded_Handler; _dataCollectionSink = dataSink; _context = environmentContext; }
public override void Initialize( System.Xml.XmlElement configurationElement, DataCollectionEvents events, DataCollectionSink dataSink, DataCollectionLogger logger, DataCollectionEnvironmentContext environmentContext) { events.SessionStart += this.SessionStarted_Handler; events.TestCaseStart += this.Events_TestCaseStart; _logger = logger; _context = environmentContext; }
public override void Initialize(XmlElement configurationElement, DataCollectionEvents events, DataCollectionSink dataSink, DataCollectionLogger logger, DataCollectionEnvironmentContext environmentContext) { _dataEvents = events; _dataLogger = logger; _dataSink = dataSink; _configSettings = configurationElement; RegisterEventHandlers(); _nyanCat = new CatRenderer(); _stats = new TestStats(); }
public override void Initialize( System.Xml.XmlElement configurationElement, DataCollectionEvents events, DataCollectionSink dataSink, DataCollectionLogger logger, DataCollectionEnvironmentContext environmentContext) { events.SessionStart += new EventHandler <SessionStartEventArgs>(this.SessionStarted_Handler); events.SessionEnd += new EventHandler <SessionEndEventArgs>(this.SessionEnded_Handler); this.dataCollectionSink = dataSink; this.context = environmentContext; this.logger = logger; }
public EventLogDataCollectorTests() { this.mockDataCollectionEvents = new Mock <DataCollectionEvents>(); this.mockDataCollectionSink = new TestableDataCollectionSink(); this.mockFileHelper = new Mock <IFileHelper>(); TestCase tc = new TestCase(); DataCollectionContext dataCollectionContext = new DataCollectionContext(new SessionId(Guid.NewGuid())); this.dataCollectionEnvironmentContext = new DataCollectionEnvironmentContext(dataCollectionContext); this.mockDataCollectionLogger = new Mock <DataCollectionLogger>(); this.eventLogDataCollector = new EventLogDataCollector(this.mockFileHelper.Object); }
public override void Initialize( XmlElement configurationElement, DataCollectionEvents events, DataCollectionSink dataSink, DataCollectionLogger logger, DataCollectionEnvironmentContext environmentContext) { this.Initialize( configurationElement, new DataCollectionEventsWrapper(events), new DataCollectionSinkWrapper(dataSink), new DataCollectionLoggerWrapper(logger), new DataCollectionEnvironmentContextWrapper(environmentContext)); }
public CoverletCoverageDataCollectorTests() { _mockDataColectionEvents = new Mock <DataCollectionEvents>(); _mockDataCollectionSink = new Mock <DataCollectionSink>(); _mockLogger = new Mock <DataCollectionLogger>(); _configurationElement = null; TestCase testcase = new TestCase { Id = Guid.NewGuid() }; _dataCollectionContext = new DataCollectionContext(testcase); _context = new DataCollectionEnvironmentContext(_dataCollectionContext); _mockCoverageWrapper = new Mock <ICoverageWrapper>(); }
public override void Initialize( XmlElement configurationElement, DataCollectionEvents events, DataCollectionSink dataSink, DataCollectionLogger logger, DataCollectionEnvironmentContext environmentContext) { _logger = logger; context = environmentContext; events.TestCaseEnd += EventsOnTestCaseEnd; events.TestCaseStart += EventsOnTestCaseStart; events.SessionEnd += EventsOnSessionEnd; events.SessionStart += EventsOnSessionStart; }
public CoverletCoverageDataCollectorTests() { _mockDataColectionEvents = new Mock <DataCollectionEvents>(); _mockDataCollectionSink = new Mock <DataCollectionSink>(); _mockLogger = new Mock <DataCollectionLogger>(); _configurationElement = null; TestCase testcase = new TestCase { Id = Guid.NewGuid() }; _dataCollectionContext = new DataCollectionContext(testcase); _context = new DataCollectionEnvironmentContext(_dataCollectionContext); _mockCoverageWrapper = new Mock <ICoverageWrapper>(); _mockCountDownEventFactory = new Mock <ICountDownEventFactory>(); _mockCountDownEventFactory.Setup(def => def.Create(It.IsAny <int>(), It.IsAny <TimeSpan>())).Returns(new Mock <ICountDownEvent>().Object); }
public override void Initialize( XmlElement configurationElement, DataCollectionEvents events, DataCollectionSink dataSink, DataCollectionLogger logger, DataCollectionEnvironmentContext environmentContext) { _logger = logger; context = environmentContext; events.TestCaseEnd += EventsOnTestCaseEnd; events.TestCaseStart += EventsOnTestCaseStart; events.SessionEnd += EventsOnSessionEnd; events.SessionStart += EventsOnSessionStart; AppDomain.CurrentDomain.ProcessExit += OnCurrentDomain_ProcessExit; AppDomain.CurrentDomain.UnhandledException += OnCurrentDomain_ProcessExit; }
/// <summary> /// Initializes parameters for the new instance of the class <see cref="BlameDataCollector"/> /// </summary> /// <param name="configurationElement">The Xml Element to save to</param> /// <param name="events">Data collection events to which methods subscribe</param> /// <param name="dataSink">A data collection sink for data transfer</param> /// <param name="logger">Data Collection Logger to send messages to the client </param> /// <param name="environmentContext">Context of data collector environment</param> public override void Initialize( XmlElement configurationElement, DataCollectionEvents events, DataCollectionSink dataSink, DataCollectionLogger logger, DataCollectionEnvironmentContext environmentContext) { ValidateArg.NotNull(logger, nameof(logger)); this.events = events; this.dataCollectionSink = dataSink; this.context = environmentContext; this.configurationElement = configurationElement; this.testSequence = new List <TestCase>(); // Subscribing to events this.events.SessionEnd += this.SessionEnded_Handler; this.events.TestCaseStart += this.EventsTestCaseStart; this.events.TestCaseEnd += this.EventsTestCaseEnd; }
/// <inheritdoc /> public override void Initialize(XmlElement configurationElement, DataCollectionEvents events, DataCollectionSink dataSink, DataCollectionLogger logger, DataCollectionEnvironmentContext environmentContext) { _events = events; _logger = new DataCollectorLogger(logger, environmentContext.SessionDataCollectionContext); try { _ciVisibilitySettings = CIVisibilitySettings.FromDefaultSources(); // Read the SIGNALFX_DOTNET_TRACER_HOME environment variable _tracerHome = Util.EnvironmentHelpers.GetEnvironmentVariable("SIGNALFX_DOTNET_TRACER_HOME"); if (string.IsNullOrEmpty(_tracerHome) || !Directory.Exists(_tracerHome)) { _logger.Error("Tracer home (SIGNALFX_DOTNET_TRACER_HOME environment variable) is not defined or folder doesn't exist, coverage has been disabled."); // By not register a handler to SessionStart and SessionEnd the coverage gets disabled (assemblies are not being processed). return; } } catch (Exception ex) { _logger.Error(ex); _ciVisibilitySettings = null; } if (_events is not null) { _events.SessionStart += OnSessionStart; _events.SessionEnd += OnSessionEnd; } }
public override void Initialize(XmlElement configurationElement, DataCollectionEvents events, DataCollectionSink dataSink, DataCollectionLogger logger, DataCollectionEnvironmentContext environmentContext) { _ = StartTracing(message => logger.LogWarning(environmentContext.SessionDataCollectionContext, message)); }
public override void Initialize(XmlElement configurationElement, DataCollectionEvents events, DataCollectionSink dataSink, DataCollectionLogger logger, DataCollectionEnvironmentContext environmentContext) { // Load config _sessionConfiguration = new SessionConfiguration( (uint)ReadIntAttribute(configurationElement, "circularBufferSizeMB", 1024), EventPipeSerializationFormat.NetTrace, ReadProviders(configurationElement)); _dataSink = dataSink; _logger = logger; var traceExt = _sessionConfiguration.Format == EventPipeSerializationFormat.NetTrace ? "nettrace" : "netperf"; _traceDirectory = Path.Combine(Path.GetTempPath(), "vstest_eventpipe", $"{environmentContext.SessionDataCollectionContext.SessionId.Id:N}_{Guid.NewGuid():N}"); if (!Directory.Exists(_traceDirectory)) { Directory.CreateDirectory(_traceDirectory); } events.SessionEnd += Events_SessionEnd; }
public DataCollectionEnvironmentContextWrapper(DataCollectionEnvironmentContext environmentContext) { this.environmentContext = environmentContext; }
public override void Initialize(XmlElement configurationElement, DataCollectionEvents events, DataCollectionSink dataSink, DataCollectionLogger logger, DataCollectionEnvironmentContext environmentContext) { _dataEvents = events; _dataLogger = logger; _dataSink = dataSink; _configSettings = configurationElement; RegisterEventHandlers(); _nyanCat = new CatRenderer(); _stats = new TestStats(); }
/// <summary> /// Initializes parameters for the new instance of the class <see cref="BlameDataCollector"/> /// </summary> /// <param name="configurationElement">The Xml Element to save to</param> /// <param name="events">Data collection events to which methods subscribe</param> /// <param name="dataSink">A data collection sink for data transfer</param> /// <param name="logger">Data Collection Logger to send messages to the client </param> /// <param name="environmentContext">Context of data collector environment</param> public override void Initialize( XmlElement configurationElement, DataCollectionEvents events, DataCollectionSink dataSink, DataCollectionLogger logger, DataCollectionEnvironmentContext environmentContext) { ValidateArg.NotNull(logger, nameof(logger)); this.events = events; this.dataCollectionSink = dataSink; this.context = environmentContext; this.configurationElement = configurationElement; this.testSequence = new List <Guid>(); this.testObjectDictionary = new Dictionary <Guid, BlameTestObject>(); this.logger = logger; // Subscribing to events this.events.TestHostLaunched += this.TestHostLaunchedHandler; this.events.SessionEnd += this.SessionEndedHandler; this.events.TestCaseStart += this.EventsTestCaseStart; this.events.TestCaseEnd += this.EventsTestCaseEnd; if (this.configurationElement != null) { var collectDumpNode = this.configurationElement[Constants.DumpModeKey]; this.collectProcessDumpOnTrigger = collectDumpNode != null; if (this.collectProcessDumpOnTrigger) { this.ValidateAndAddTriggerBasedProcessDumpParameters(collectDumpNode); // enabling dumps on MacOS needs to be done explicitly https://github.com/dotnet/runtime/pull/40105 this.environmentVariables.Add(new KeyValuePair <string, string>("COMPlus_DbgEnableElfDumpOnMacOS", "1")); this.environmentVariables.Add(new KeyValuePair <string, string>("COMPlus_DbgEnableMiniDump", "1")); // https://github.com/dotnet/coreclr/blob/master/Documentation/botr/xplat-minidump-generation.md // 2 MiniDumpWithPrivateReadWriteMemory // 4 MiniDumpWithFullMemory this.environmentVariables.Add(new KeyValuePair <string, string>("COMPlus_DbgMiniDumpType", this.processFullDumpEnabled ? "4" : "2")); var dumpDirectory = this.GetDumpDirectory(); var dumpPath = Path.Combine(dumpDirectory, $"%e_%p_%t_crashdump.dmp"); this.environmentVariables.Add(new KeyValuePair <string, string>("COMPlus_DbgMiniDumpName", dumpPath)); } var collectHangBasedDumpNode = this.configurationElement[Constants.CollectDumpOnTestSessionHang]; this.collectProcessDumpOnTestHostHang = collectHangBasedDumpNode != null; if (this.collectProcessDumpOnTestHostHang) { // enabling dumps on MacOS needs to be done explicitly https://github.com/dotnet/runtime/pull/40105 this.environmentVariables.Add(new KeyValuePair <string, string>("COMPlus_DbgEnableElfDumpOnMacOS", "1")); this.ValidateAndAddHangBasedProcessDumpParameters(collectHangBasedDumpNode); } var tfm = this.configurationElement[Constants.TargetFramework]?.InnerText; if (!string.IsNullOrWhiteSpace(tfm)) { this.targetFramework = tfm; } } this.attachmentGuid = Guid.NewGuid().ToString().Replace("-", string.Empty); if (this.collectProcessDumpOnTestHostHang) { this.inactivityTimer = this.inactivityTimer ?? new InactivityTimer(this.CollectDumpAndAbortTesthost); this.ResetInactivityTimer(); } }
/// <summary> /// Initializes a new instance of the <see cref="DataCollectorInformation"/> class. /// </summary> /// <param name="dataCollector"> /// The data collector. /// </param> /// <param name="configurationElement"> /// The configuration element. /// </param> /// <param name="dataCollectorConfig"> /// The data collector config. /// </param> /// <param name="environmentContext"> /// The environment Context. /// </param> /// <param name="attachmentManager"> /// The attachment Manager. /// </param> /// <param name="events"> /// The events. /// </param> /// <param name="messageSink"> /// The message Sink. /// </param> /// <param name="settingsXml"></param> internal DataCollectorInformation(DataCollector dataCollector, XmlElement configurationElement, DataCollectorConfig dataCollectorConfig, DataCollectionEnvironmentContext environmentContext, IDataCollectionAttachmentManager attachmentManager, TestPlatformDataCollectionEvents events, IMessageSink messageSink, string settingsXml) { this.DataCollector = dataCollector; this.ConfigurationElement = configurationElement; this.DataCollectorConfig = dataCollectorConfig; this.Events = events; this.EnvironmentContext = environmentContext; this.DataCollectionSink = new TestPlatformDataCollectionSink(attachmentManager, dataCollectorConfig); this.Logger = new TestPlatformDataCollectionLogger(messageSink, dataCollectorConfig); this.SettingsXml = settingsXml; }
public override void Initialize(XmlElement configurationElement, DataCollectionEvents events, DataCollectionSink dataSink, DataCollectionLogger logger, DataCollectionEnvironmentContext environmentContext) { events.TestCaseStart += (sender, e) => logger.LogWarning(environmentContext.SessionDataCollectionContext, e.TestCaseName + " [Start]"); events.TestCaseEnd += (sender, e) => logger.LogWarning(environmentContext.SessionDataCollectionContext, e.TestCaseName + " [Ended]"); }