public void Setup()
        {
            var deploymentParameters = new DeploymentParameters(Path.Combine(TestPathUtilities.GetSolutionRootDirectory("IISIntegration"), "test/Websites/InProcessWebSite"),
                                                                ServerType.IISExpress,
                                                                RuntimeFlavor.CoreClr,
                                                                RuntimeArchitecture.x64)
            {
                ServerConfigTemplateContent = File.ReadAllText("Http.config"),
                SiteName        = "HttpTestSite",
                TargetFramework = "netcoreapp2.1",
                ApplicationType = ApplicationType.Portable,
                ANCMVersion     = ANCMVersion.AspNetCoreModuleV2
            };

            _deployer = ApplicationDeployerFactory.Create(deploymentParameters, NullLoggerFactory.Instance);
            _client   = _deployer.DeployAsync().Result.HttpClient;
        }
Beispiel #2
0
        public IISTestSiteFixture()
        {
            var deploymentParameters = new DeploymentParameters(Helpers.GetInProcessTestSitesPath(),
                                                                ServerType.IISExpress,
                                                                RuntimeFlavor.CoreClr,
                                                                RuntimeArchitecture.x64)
            {
                ServerConfigTemplateContent = File.ReadAllText("AppHostConfig/Http.config"),
                SiteName        = "HttpTestSite",
                TargetFramework = "netcoreapp2.1",
                ApplicationType = ApplicationType.Portable,
                ANCMVersion     = ANCMVersion.AspNetCoreModuleV2
            };

            _deployer        = ApplicationDeployerFactory.Create(deploymentParameters, NullLoggerFactory.Instance);
            DeploymentResult = _deployer.DeployAsync().Result;
            Client           = DeploymentResult.HttpClient;
            BaseUri          = DeploymentResult.ApplicationBaseUri;
            ShutdownToken    = DeploymentResult.HostShutdownToken;
        }
    public WebTestsFixture()
    {
        var logger = new LoggerFactory()
                     .AddConsole(LogLevel.Information)
                     .CreateLogger("Regression");

        _loggerScope = logger.BeginScope("RegressionTestSuite");
        var deploymentParameters = new DeploymentParameters(
            TestConfiguration.Configuration.Get <string>("Settings:ApplicationPath"),
            (ServerType)Enum.Parse(typeof(ServerType), TestConfiguration.Configuration.Get <string>("Settings:ServerType")),
            RuntimeFlavor.Clr,
            RuntimeArchitecture.x86)
        {
            ApplicationBaseUriHint = TestConfiguration.Configuration.Get <string>("Settings:ApplicationUri"),
            EnvironmentName        = TestConfiguration.Configuration.Get <string>("Settings:EnvironmentName"),
            PublishWithNoSource    = false
        };

        _deployer        = ApplicationDeployerFactory.Create(deploymentParameters, logger);
        DeploymentResult = _deployer.Deploy();
    }
Beispiel #4
0
        public async Task <DeploymentResult> CreateDeploymentAsync(ILoggerFactory loggerFactory)
        {
            lock (_deploymentLock)
            {
                if (_deploymentTask == null)
                {
                    var deploymentParameters = GetDeploymentParameters();
                    if (PublishOnly)
                    {
                        _deployer = new PublishOnlyDeployer(deploymentParameters, loggerFactory);
                    }
                    else
                    {
                        _deployer = ApplicationDeployerFactory.Create(deploymentParameters, loggerFactory);
                    }

                    _deploymentTask = _deployer.DeployAsync();
                }
            }

            return(await _deploymentTask);
        }
Beispiel #5
0
        public async Task <StressTestServerStartResult> StartAsync()
        {
            var framework    = Microsoft.Extensions.Internal.RuntimeEnvironment.RuntimeType;
            var fullTestName = $"{_testMethodName}.{_testName}.{framework}";

            fullTestName = fullTestName.Replace('_', '.');

            _logger = LogUtility.LoggerFactory.CreateLogger(fullTestName);

            var baseAddress = $"http://localhost:{_port}/";

            var p = new DeploymentParameters(PathHelper.GetTestAppFolder(_testName), _serverType, RuntimeFlavor.Clr, RuntimeArchitecture.x64)
            {
                SiteName = _testName,
                ApplicationBaseUriHint = baseAddress,
                TargetFramework        = "net451"
            };

            ILogger deployerLogger;

            if (StressConfig.Instance.DeployerLogging)
            {
                deployerLogger = _logger;
            }
            else
            {
                deployerLogger = new NullLogger();
            }

            _applicationDeployer = ApplicationDeployerFactory.Create(p, deployerLogger);
            var deploymentResult = _applicationDeployer.Deploy();

            baseAddress = deploymentResult.ApplicationBaseUri;

            _logger.LogInformation($"Test project is set up at {deploymentResult.ContentRoot}");

            var result = new StressTestServerStartResult
            {
                ServerHandle = this
            };
            var serverVerificationClient = new HttpClient
            {
                BaseAddress = new Uri(baseAddress)
            };

            HttpResponseMessage response = null;

            for (int i = 0; i < 20; ++i)
            {
                try
                {
                    _logger.LogInformation($"Pinging {serverVerificationClient.BaseAddress} to ensure server booted properly");
                    response = await serverVerificationClient.GetAsync(serverVerificationClient.BaseAddress);

                    break;
                }
                catch (TimeoutException)
                {
                    _logger.LogError("Http client timeout.");
                    break;
                }
                catch (Exception)
                {
                    _logger.LogInformation("Failed to ping server. Retrying...");
                    Thread.Sleep(TimeSpan.FromSeconds(1));
                    continue;
                }
            }

            result.SuccessfullyStarted = false;
            if (response != null)
            {
                _logger.LogInformation($"Response {response.StatusCode}");

                if (response.IsSuccessStatusCode)
                {
                    _logger.LogInformation("Server started successfully");
                    result.SuccessfullyStarted = true;
                    ClientFactory = () => new RequestTrackingHttpClient(baseAddress, _metricCollector);
                }
            }

            return(result);
        }
Beispiel #6
0
 public Deployment(IApplicationDeployer deployer, DeploymentResult deploymentResult)
 {
     Deployer         = deployer;
     DeploymentResult = deploymentResult;
     HttpClient       = deploymentResult.HttpClient;
 }