Exemple #1
0
        async void DoWorkAsync(object state)
        {
            var tesReportGeneratorFactory = new TestReportGeneratorFactory(this.storage);
            List <ITestReportMetadata> reportMetadataList = await Settings.Current.GetReportMetadataListAsync(this.logger);

            ITestResultReport[] testResultReports = await TestReportUtil.GenerateTestResultReportsAsync(Settings.Current.TrackingId, reportMetadataList, tesReportGeneratorFactory, this.logger);

            if (testResultReports.Length == 0)
            {
                this.logger.LogInformation("No test result report is generated.");
                return;
            }

            var    testSummary    = new TestSummary(testResultReports);
            string reportsContent = JsonConvert.SerializeObject(testSummary, Formatting.Indented);

            this.logger.LogInformation($"Test result report{Environment.NewLine}{reportsContent}");

            await AzureLogAnalytics.Instance.PostAsync(
                Settings.Current.LogAnalyticsWorkspaceId,
                Settings.Current.LogAnalyticsSharedKey,
                reportsContent,
                Settings.Current.LogAnalyticsLogType);

            this.logger.LogInformation("Successfully send reports to LogAnalytics");
        }
Exemple #2
0
        public async Task <ContentResult> GetReportsAsync()
        {
            var testReportGeneratorFactory = new TestReportGeneratorFactory(this.storage);

            ITestResultReport[] testResultReports = await TestReportHelper.GenerateTestResultReportsAsync(Settings.Current.TrackingId, Settings.Current.GetReportMetadataList(), testReportGeneratorFactory, Logger);

            if (testResultReports.Length == 0)
            {
                return(new ContentResult {
                    Content = "No test report generated"
                });
            }

            return(new ContentResult
            {
                Content = this.AddManualRunReportingHeading(JsonConvert.SerializeObject(testResultReports, Formatting.Indented)) // explicit serialization needed due to the wrapping list
            });
        }
Exemple #3
0
        async void DoWorkAsync(object state)
        {
            var testReportGeneratorFactory = new TestReportGeneratorFactory(this.storage, Settings.Current.NetworkControllerType, Settings.Current.LongHaulSpecificSettings);
            List <ITestReportMetadata> reportMetadataList = await Settings.Current.GetReportMetadataListAsync(this.logger);

            ITestResultReport[] testResultReports = await TestReportUtil.GenerateTestResultReportsAsync(Settings.Current.TrackingId, reportMetadataList, testReportGeneratorFactory, this.logger);

            if (testResultReports.Length == 0)
            {
                this.logger.LogInformation("No test result report is generated.");
                return;
            }

            string blobContainerUri = string.Empty;

            if (this.serviceSpecificSettings.LogUploadEnabled)
            {
                try
                {
                    Uri blobContainerWriteUriForLog = await TestReportUtil.GetOrCreateBlobContainerSasUriForLogAsync(this.serviceSpecificSettings.StorageAccountConnectionString);

                    blobContainerUri = $"{blobContainerWriteUriForLog.Scheme}{Uri.SchemeDelimiter}{blobContainerWriteUriForLog.Authority}{blobContainerWriteUriForLog.AbsolutePath}";

                    await TestReportUtil.UploadLogsAsync(Settings.Current.IoTHubConnectionString, blobContainerWriteUriForLog, this.logUploadDuration, this.logger);
                }
                catch (Exception ex)
                {
                    this.logger.LogError(ex, "Exception happened when uploading logs");
                }
            }

            var    testSummary    = new TestSummary(Settings.Current.TestInfo, testResultReports, blobContainerUri);
            string reportsContent = JsonConvert.SerializeObject(testSummary, Formatting.Indented);

            this.logger.LogInformation($"Test summary{Environment.NewLine}{reportsContent}");

            await AzureLogAnalytics.Instance.PostAsync(
                this.serviceSpecificSettings.LogAnalyticsWorkspaceId,
                this.serviceSpecificSettings.LogAnalyticsSharedKey,
                reportsContent,
                this.serviceSpecificSettings.LogAnalyticsLogType);

            this.logger.LogInformation("Successfully send reports to LogAnalytics");
        }
Exemple #4
0
        public async Task <ContentResult> GetReportsAsync()
        {
            var testReportGeneratorFactory = new TestReportGeneratorFactory(this.storage, Settings.Current.NetworkControllerType);
            List <ITestReportMetadata> reportMetadataList = await Settings.Current.GetReportMetadataListAsync(Logger);

            ITestResultReport[] testResultReports = await TestReportUtil.GenerateTestResultReportsAsync(Settings.Current.TrackingId, reportMetadataList, testReportGeneratorFactory, Logger);

            if (testResultReports.Length == 0)
            {
                return(new ContentResult {
                    Content = "No test report generated"
                });
            }

            return(new ContentResult
            {
                Content = JsonConvert.SerializeObject(testResultReports, Formatting.Indented) // explicit serialization needed due to the wrapping list
            });
        }