コア テンプレート パックの angular2 テンプレートに基づく ASP.NET Core プロジェクトがあります。メイン アプリに対して単体テストを実行するために、xunit と分度器を使用して 2 つ目のプロジェクトを追加しました。
どちらも単独で問題なく動作しますが、私が見逃している小さな点が 1 つだけあります。
分度器テストを実行したいときは、メイン プロジェクトを手動でホストする必要があります。メイン プロジェクトを手動でホストしないと実行されないため、ページにアクセスできないため、すべてのテストが失敗します。
おそらく、テストから何らかの方法でメインのアプリ/プロジェクトを開始する必要がありますが、方法がわかりません。分度器のすべての例は、すでに実行されているいくつかのホームページに対して実行されますが、他のプロジェクトに対して実行されるものはありません。
メインの ASP.NET Core プロジェクトをテスト プロジェクトから開始して、テスト用に実行するにはどうすればよいですか?
奇妙なことに、ChromeDriver で Strg+F5 分度器を使用してメイン アプリを一度起動すると、アプリのホームページが表示されます。しかし、テストを機能させるには、手動で一度実行する必要があります...
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);
}