У меня есть базовый проект ASP.NET, основанный на шаблоне angular2 из основного пакета шаблонов. Я добавил второй project with xunit and protractor для запуска модульного теста против моего основного приложения.Тестирование приложения ASP.NET Core с использованием Protractor в Visual Studio 2015
Оба работают хорошо в одиночку, есть только одна маленькая вещь, я скучаю:
Когда я хочу запустить транспортир тесты, мне нужно провести главный проект где-то вручную. Если я не размещаю основной проект вручную, он не запускается, поэтому все тесты не работают, потому что моя страница недоступна.
Мне, вероятно, нужно как можно скорее запустить основное приложение/проект из теста, но я понятия не имел, как это сделать. Все примеры для protractor работают с некоторыми уже запущенными Homepages, ни один из них не работает против какого-либо другого проекта.
Как начать основной проект ASP.NET Core из моего тестового проекта, поэтому он работает для тестирования?
Странная вещь: после того, как я запустил основное приложение после использования портатора Strg + F5 с помощью ChromeDriver, вы найдете домашнюю страницу приложения. Но мне нужно запустить его один раз вручную для проведения тестов ...
public class EndToEndTests : IDisposable
{
private const string Url = "https://localhost:44391/";
private readonly IWebDriver _driver;
private readonly NgWebDriver _browser;
public EndToEndTests()
{
// TODO: somehow get the ASP.NET Core project up and running
_driver = new ChromeDriver(@"\test\ChromeDriver");
_driver.Manage().Timeouts().SetScriptTimeout(TimeSpan.FromSeconds(10));
_browser = new NgWebDriver(_driver);
}
public void Dispose()
{
_driver.Quit();
}
[Fact(DisplayName = "Has a title")]
public void HasATitle()
{
_browser.Url = Url;
Assert.Equal("My page", _browser.Title);
}
Спасибо, это звучит многообещающе! У вас нет намеков или ссылок, как это сделать? В противном случае я начну googling webhostbuilder. – Sam
Я использую .NET Core, но WebHostBuilder на самом деле не размещает веб-сервер, кажется, что он только эмулирует его, поэтому я могу запустить _testserver.CreateClient() и использовать его. Хорошо работает для тестирования API и MVC, но, похоже, не подходит для тестирования Angular2 SPA с Protractor :( – Sam
После того, как я ударил головой о стену, я получил ее для работы с помощью WebHostBuilder (копирование и адаптация кода из моей основной программы. cs), спасибо !! – Sam