2015-11-17 4 views
0

Я настраиваю регрессионное тестирование для моего проекта ASP.NET 5, используя beta8. Когда я настраиваю тестовые светильники, я хочу запустить пустельгу, чтобы я мог запускать тесты селена против нее без необходимости использования какого-либо внешнего веб-сервера. Как мне это сделать?Как начать пустельгу из теста?

Это в основном что-то вроде этого:

public class RegressionTests : IDisposable 
{ 

    public RegressionTests() 
    { 
     // Start kestrel 
    } 

    [Fact] 
    public void Test1() 
    { 
     Assert.True(true); 
     // more tests... 
    } 

    public void Dispose() 
    { 
     // Shutdown kestrel 
    } 
} 

Это то, что я пытался до сих пор, но я не мог заставить его работать. Он не забирает файл project.json. Ну, честно говоря, я не знаю, что передать ему, так как я не могу найти нигде какую команду args я могу передать Microsoft.AspNet.Hosting.Program.

new Microsoft.AspNet.Hosting.Program(CallContextServiceLocator.Locator.ServiceProvider).Main(
      new[] 
      { 
       "--server", 
       "Microsoft.AspNet.Server.Kestrel", 
       "--project", 
       "../Web/project.json", 
       "--port", 
       "5001", 
      }); 

ответ

1

Спасибо @Victor Hurdugaci. Для google людей будущего это то, что у меня получилось. Это тестовое устройство, которое я использую для xunit. Класс TestConfiguration отсутствует, но вы должны получить эту идею. Вам нужно добавить зависимость от Microsoft.AspNet.Server.Testing.

public class WebTestsFixture : IDisposable 
{ 
    private readonly IApplicationDeployer _deployer; 
    private readonly IDisposable _loggerScope; 

    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(); 
    } 

    public DeploymentResult DeploymentResult { get; private set; } 

    public void Dispose() 
    { 
     _loggerScope.Dispose(); 
     _deployer.Dispose(); 
    } 
}