コード例 #1
0
        public static IEnumerable <AbstractTestResultParser> GetTestResultParsers(ITestRunManager testRunManager, ITraceLogger logger, ITelemetryDataCollector telemetry)
        {
            var currentDir = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
            var dllFile    = new FileInfo(Path.Combine(currentDir, "Agent.Plugins.Log.TestResultParser.Parser.dll"));

            Assembly.LoadFrom(dllFile.FullName);

            var interfaceType = typeof(AbstractTestResultParser);

            return(AppDomain.CurrentDomain.GetAssemblies()
                   .SelectMany((x) =>
            {
                try
                {
                    return x.GetTypes();
                }
                catch
                {
                    // Skipping issues with assemblies load via reflection - since there are some issues with 'Microsoft.VisualStudio.Services.Agent', although this assembly is not relevant here
                    return new Type[0];
                }
            })
                   .Where(x => interfaceType.IsAssignableFrom(x) && !x.IsInterface && !x.IsAbstract)
                   .Select(x => (AbstractTestResultParser)Activator.CreateInstance(x, testRunManager, logger, telemetry)));
        }
コード例 #2
0
        /// <summary>
        /// Default constructor accepting only test run manager instance, rest of the requirements assume default values
        /// </summary>
        public PythonTestResultParser(ITestRunManager testRunManager, ITraceLogger logger, ITelemetryDataCollector telemetry) : base(testRunManager, logger, telemetry)
        {
            base.logger.Info("PythonTestResultParser : Starting python test result parser.");
            base.telemetry.AddToCumulativeTelemetry(PythonTelemetryConstants.EventArea, PythonTelemetryConstants.Initialize, true);

            this.state          = ParserState.ExpectingTestResults;
            this.currentTestRun = new TestRun($"{Name}/{Version}", this.currentTestRunId);
        }
コード例 #3
0
        /// <summary>
        /// Default constructor accepting only test run manager instance, rest of the requirements assume default values
        /// </summary>
        public PythonTestResultParser(ITestRunManager testRunManager, ITraceLogger logger, ITelemetryDataCollector telemetry)
            : base(testRunManager, logger, telemetry)
        {
            Logger.Info("PythonTestResultParser : Starting python test result parser.");
            Telemetry.AddOrUpdate(PythonTelemetryConstants.Initialize, true, PythonTelemetryConstants.EventArea);

            _state          = ParserState.ExpectingTestResults;
            _currentTestRun = new TestRun($"{Name}/{Version}", "Python", _currentTestRunId);
        }
コード例 #4
0
        /// <summary>
        /// Detailed constructor where specified logger and telemetry data collector are initialized along with test run manager
        /// </summary>
        /// <param name="testRunPublisher"></param>
        /// <param name="diagnosticDataCollector"></param>
        /// <param name="telemetryDataCollector"></param>
        public MochaTestResultParser(ITestRunManager testRunManager, ITraceLogger logger, ITelemetryDataCollector telemetryDataCollector) : base(testRunManager, logger, telemetryDataCollector)
        {
            Logger.Info("MochaTestResultParser : Starting mocha test result parser.");
            Telemetry.AddOrUpdate(MochaTelemetryConstants.Initialize, true, MochaTelemetryConstants.EventArea);

            // Initialize the starting state of the parser
            var testRun = new TestRun($"{Name}/{Version}", "Mocha", 1);

            _stateContext = new MochaParserStateContext(testRun);
            _currentState = MochaParserStates.ExpectingTestResults;
        }
コード例 #5
0
        /// <summary>
        /// Detailed constructor where specified logger and telemetry data collector are initialized along with test run manager
        /// </summary>
        /// <param name="testRunPublisher"></param>
        /// <param name="diagnosticDataCollector"></param>
        /// <param name="telemetryDataCollector"></param>
        public JestTestResultParser(ITestRunManager testRunManager, ITraceLogger logger, ITelemetryDataCollector telemetryDataCollector)
            : base(testRunManager, logger, telemetryDataCollector)
        {
            logger.Info("JestTestResultParser : Starting jest test result parser.");
            telemetryDataCollector.AddToCumulativeTelemetry(JestTelemetryConstants.EventArea, JestTelemetryConstants.Initialize, true);

            // Initialize the starting state of the parser
            var testRun = new TestRun($"{Name}/{Version}", 1);

            this.stateContext = new JestParserStateContext(testRun);
            this.currentState = JestParserStates.ExpectingTestRunStart;
        }
コード例 #6
0
        public static IEnumerable <AbstractTestResultParser> GetTestResultParsers(ITestRunManager testRunManager, ITraceLogger logger, ITelemetryDataCollector telemetry)
        {
            var currentDir = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
            var dllFile    = new FileInfo(Path.Combine(currentDir, "Agent.Plugins.Log.TestResultParser.Parser.dll"));

            Assembly.LoadFrom(dllFile.FullName);

            var interfaceType = typeof(AbstractTestResultParser);

            return(AppDomain.CurrentDomain.GetAssemblies()
                   .SelectMany(x => x.GetTypes())
                   .Where(x => interfaceType.IsAssignableFrom(x) && !x.IsInterface && !x.IsAbstract)
                   .Select(x => (AbstractTestResultParser)Activator.CreateInstance(x, testRunManager, logger, telemetry)));
        }
コード例 #7
0
        /// <summary>
        /// Detailed constructor where specified logger and telemetry data collector are initialized along with test run manager
        /// </summary>
        /// <param name="testRunPublisher"></param>
        /// <param name="diagnosticDataCollector"></param>
        /// <param name="telemetryDataCollector"></param>
        public MochaTestResultParser(ITestRunManager testRunManager, ITraceLogger logger, ITelemetryDataCollector telemetryDataCollector) : base(testRunManager, logger, telemetryDataCollector)
        {
            logger.Info("MochaTestResultParser : Starting mocha test result parser.");
            telemetryDataCollector.AddToCumulativeTelemetry(MochaTelemetryConstants.EventArea, MochaTelemetryConstants.Initialize, true);

            // Initialize the starting state of the parser
            var testRun = new TestRun($"{Name}/{Version}", 1);

            this.stateContext = new MochaParserStateContext(testRun);
            this.currentState = MochaParserStates.ExpectingTestResults;

            this.expectingTestResults    = new MochaExpectingTestResults(AttemptPublishAndResetParser, logger, telemetryDataCollector);
            this.expectingTestRunSummary = new MochaExpectingTestRunSummary(AttemptPublishAndResetParser, logger, telemetryDataCollector);
            this.expectingStackTraces    = new MochaExpectingStackTraces(AttemptPublishAndResetParser, logger, telemetryDataCollector);
        }
コード例 #8
0
 private void RunTasks(ITestRunManager runManager, TestRun testRun)
 {
     runManager.PublishAsync(testRun);
     runManager.PublishAsync(testRun);
 }
コード例 #9
0
 protected AbstractTestResultParser(ITestRunManager testRunManager, ITraceLogger traceLogger, ITelemetryDataCollector telemetryDataCollector)
 {
     this.testRunManager = testRunManager;
     this.logger         = traceLogger;
     this.telemetry      = telemetryDataCollector;
 }
コード例 #10
0
 public ConfigurationRepository(IOptions <ConnectionStrings> connnectionStrings, ITestRunManager testRunManager)
 {
     _connnectionStrings = connnectionStrings;
     _testRunManager     = testRunManager;
 }