/// <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;
        }
        public AttachmentManagerTests()
        {
            _mockDataCollectionSink   = new Mock <DataCollectionSink>();
            _mockDataCollectionLogger = new Mock <DataCollectionLogger>();
            var testcase = new TestCase {
                Id = Guid.NewGuid()
            };

            _dataCollectionContext = new DataCollectionContext(testcase);
            _testPlatformLogger    = new TestPlatformLogger(_mockDataCollectionLogger.Object, _dataCollectionContext);
            _eqtTrace            = new TestPlatformEqtTrace();
            _mockFileHelper      = new Mock <IFileHelper>();
            _mockDirectoryHelper = new Mock <IDirectoryHelper>();

            _attachmentManager = new AttachmentManager(_mockDataCollectionSink.Object, _dataCollectionContext, _testPlatformLogger,
                                                       _eqtTrace, "report.cobertura.xml", @"E:\temp", _mockFileHelper.Object, _mockDirectoryHelper.Object);
        }
Exemple #3
0
        public AttachmentManager(DataCollectionSink dataSink, DataCollectionContext dataCollectionContext, TestPlatformLogger logger, TestPlatformEqtTrace eqtTrace, string reportFileName, string reportDirectoryName, FileHelper fileHelper, DirectoryHelper directoryHelper)
        {
            // Store input vars
            this.dataSink = dataSink;
            this.dataCollectionContext = dataCollectionContext;
            this.logger          = logger;
            this.eqtTrace        = eqtTrace;
            this.reportFileName  = reportFileName;
            this.fileHelper      = fileHelper;
            this.directoryHelper = directoryHelper;

            // Report directory to store the coverage reports.
            this.reportDirectory = Path.Combine(Path.GetTempPath(), reportDirectoryName);

            // Register events
            this.dataSink.SendFileCompleted += this.OnSendFileCompleted;
        }
Exemple #4
0
        public AttachmentManagerTests()
        {
            this.mockDataCollectionSink   = new Mock <DataCollectionSink>();
            this.mockDataCollectionLogger = new Mock <DataCollectionLogger>();
            TestCase testcase = new TestCase {
                Id = Guid.NewGuid()
            };

            this.dataCollectionContext = new DataCollectionContext(testcase);
            this.testPlatformLogger    = new TestPlatformLogger(this.mockDataCollectionLogger.Object, this.dataCollectionContext);
            this.eqtTrace            = new TestPlatformEqtTrace();
            this.mockFileHelper      = new Mock <IFileHelper>();
            this.mockDirectoryHelper = new Mock <IDirectoryHelper>();

            this.attachmentManager = new AttachmentManager(this.mockDataCollectionSink.Object, this.dataCollectionContext, this.testPlatformLogger,
                                                           this.eqtTrace, "report.cobertura.xml", @"E:\temp", this.mockFileHelper.Object, this.mockDirectoryHelper.Object);
        }
Exemple #5
0
        public AttachmentManager(DataCollectionSink dataSink, DataCollectionContext dataCollectionContext, TestPlatformLogger logger, TestPlatformEqtTrace eqtTrace, string reportDirectoryName, IFileHelper fileHelper, IDirectoryHelper directoryHelper, ICountDownEvent countDownEvent)
        {
            // Store input variabless
            _dataSink = dataSink;
            _dataCollectionContext = dataCollectionContext;
            _logger          = logger;
            _eqtTrace        = eqtTrace;
            _fileHelper      = fileHelper;
            _directoryHelper = directoryHelper;
            _countDownEvent  = countDownEvent;

            // Report directory to store the coverage reports.
            _reportDirectory = Path.Combine(Path.GetTempPath(), reportDirectoryName);

            // Register events
            _dataSink.SendFileCompleted += OnSendFileCompleted;
        }
Exemple #6
0
 public AttachmentManager(DataCollectionSink dataSink, DataCollectionContext dataCollectionContext, TestPlatformLogger logger, TestPlatformEqtTrace eqtTrace, string reportFileName)
     : this(dataSink,
            dataCollectionContext,
            logger,
            eqtTrace,
            reportFileName,
            Guid.NewGuid().ToString(),
            new FileHelper(),
            new DirectoryHelper())
 {
 }
Exemple #7
0
        private static IServiceCollection GetDefaultServiceCollection(TestPlatformEqtTrace eqtTrace, TestPlatformLogger logger, string testModule)
        {
            IServiceCollection serviceCollection = new ServiceCollection();

            serviceCollection.AddTransient <IRetryHelper, RetryHelper>();
            serviceCollection.AddTransient <IProcessExitHandler, ProcessExitHandler>();
            serviceCollection.AddTransient <IFileSystem, FileSystem>();
            serviceCollection.AddTransient <ILogger, CoverletLogger>(_ => new CoverletLogger(eqtTrace, logger));
            // We need to keep singleton/static semantics
            serviceCollection.AddSingleton <IInstrumentationHelper, InstrumentationHelper>();
            // We cache resolutions
            serviceCollection.AddSingleton <ISourceRootTranslator, SourceRootTranslator>(serviceProvider => new SourceRootTranslator(testModule, serviceProvider.GetRequiredService <ILogger>(), serviceProvider.GetRequiredService <IFileSystem>()));
            return(serviceCollection);
        }
 public CoverageManager(CoverletSettings settings, TestPlatformEqtTrace eqtTrace, TestPlatformLogger logger, ICoverageWrapper coverageWrapper)
     : this(settings,
            new ReporterFactory(CoverletConstants.DefaultReportFormat).CreateReporter(),
            new CoverletLogger(eqtTrace, logger),
            coverageWrapper)
 {
 }
Exemple #9
0
 public CoverletLogger(TestPlatformEqtTrace eqtTrace, TestPlatformLogger logger)
 {
     _eqtTrace = eqtTrace;
     _logger   = logger;
 }
Exemple #10
0
 public CoverageManager(CoverletSettings settings, TestPlatformEqtTrace eqtTrace, TestPlatformLogger logger, ICoverageWrapper coverageWrapper)
     : this(settings,
            settings.ReportFormats.Select(format =>
 {
     var reporterFactory = new ReporterFactory(format);
     if (!reporterFactory.IsValidFormat())
     {
         eqtTrace.Warning($"Invalid report format '{format}'");
         return(null);
     }
     else
     {
         return(reporterFactory.CreateReporter());
     }
 }).Where(r => r != null).ToArray(),
            new CoverletLogger(eqtTrace, logger),
            coverageWrapper)
 {
 }
        private static IServiceProvider GetServiceProvider(TestPlatformEqtTrace eqtTrace, TestPlatformLogger logger)
        {
            IServiceCollection serviceCollection = new ServiceCollection();

            serviceCollection.AddTransient <IRetryHelper, RetryHelper>();
            serviceCollection.AddTransient <IProcessExitHandler, ProcessExitHandler>();
            serviceCollection.AddTransient <IFileSystem, FileSystem>();
            serviceCollection.AddTransient <ILogger, CoverletLogger>(_ => new CoverletLogger(eqtTrace, logger));

            // We need to keep singleton/static semantics
            serviceCollection.AddSingleton <IInstrumentationHelper, InstrumentationHelper>();

            return(serviceCollection.BuildServiceProvider());
        }
Exemple #12
0
 public AttachmentManager(DataCollectionSink dataSink, DataCollectionContext dataCollectionContext, TestPlatformLogger logger, TestPlatformEqtTrace eqtTrace, ICountDownEvent countDownEvent)
     : this(dataSink,
            dataCollectionContext,
            logger,
            eqtTrace,
            Guid.NewGuid().ToString(),
            new FileHelper(),
            new DirectoryHelper(),
            countDownEvent)
 {
 }
Exemple #13
0
 public CoverageManager(CoverletSettings settings, TestPlatformEqtTrace eqtTrace, TestPlatformLogger logger, ICoverageWrapper coverageWrapper,
                        IInstrumentationHelper instrumentationHelper, IFileSystem fileSystem, ISourceRootTranslator sourceRootTranslator, ICecilSymbolHelper cecilSymbolHelper)
     : this(settings,
            settings.ReportFormats.Select(format =>
 {
     var reporterFactory = new ReporterFactory(format);
     if (!reporterFactory.IsValidFormat())
     {
         eqtTrace.Warning($"Invalid report format '{format}'");
         return(null);
     }
     else
     {
         return(reporterFactory.CreateReporter());
     }
 }).Where(r => r != null).ToArray(),
            new CoverletLogger(eqtTrace, logger),
            coverageWrapper, instrumentationHelper, fileSystem, sourceRootTranslator, cecilSymbolHelper)
 {
 }
 public CoverletLogger(TestPlatformEqtTrace eqtTrace, TestPlatformLogger logger)
 {
     this.eqtTrace = eqtTrace;
     this.logger   = logger;
 }