コアテンプレートパックのangular2テンプレートに基づいてASP.NETコアプロジェクトを取得しました。私は、私の主なアプリに対してユニットテストを実行するために2番目のproject with xunit and protractorを追加しました。私はどこかに手動でメインプロジェクトをホストする必要が分度器のテストを実行したい場合はVisual Studioで分度器を使用してASP.NETコアアプリケーションをテストする2015
:
だけではうまく動作し両方、私は欠場ただ一つの小さな事があります。メインプロジェクトを手動でホストしていないと実行されないので、ページに到達できないためすべてのテストが失敗します。
おそらくテストから何らかの形でメインのアプリケーション/プロジェクトを開始する必要がありますが、どうなるかわかりません。分度器のすべての例は、すでに実行中のいくつかのホームページに対して実行され、何も他のプロジェクトに対して実行されません。
テストプロジェクトからメインのASP.NETコアプロジェクトを開始してテストを実行するにはどうすればよいですか?
奇妙なことです:私は一度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);
}
ありがとう、これは有望ですね!あなたはこれをどうするかのヒントやリンクはありませんか?さもなければ私はwebhostbuilderをグーグルで始めます。 – Sam
私は.NET Coreを使用していますが、WebHostBuilderは実際にWebサーバーをホストしていません。ただ1つをエミュレートするように見えるので、_testserver.CreateClient()を実行して使用できます。 APIとMVCをうまくテストするにはうまくいきますが、分度器でAngular2 SPAをテストするのには使えないようです:( – Sam
壁に頭を打つと、私はWebHostBuilder(メインプログラムからコードをコピーして適応させました。 – Sam