我有一个基于核心模板包中的 angular2 模板的 ASP.NET Core 项目。我添加了带有 xunit 和量角器的第二个项目来对我的主应用程序运行单元测试。
两者都很好地单独工作,我错过了一件小事:
当我想运行量角器测试时,我需要手动在某处托管主项目。如果我不手动托管主项目,它就不会运行,所以所有测试都会失败,因为我的页面无法访问。
我可能需要从测试中以某种方式启动主应用程序/项目,但我不知道如何。量角器的所有示例都针对一些已经运行的主页运行,没有一个针对其他项目运行。
如何从我的测试项目启动主 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);
}