-
Notifications
You must be signed in to change notification settings - Fork 0
/
BlazorTest.cs
69 lines (56 loc) · 1.92 KB
/
BlazorTest.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
using Microsoft.Playwright.MSTest;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using Microsoft.AspNetCore.Components;
using Microsoft.AspNetCore.Components.Web;
using BlazorApp.Data;
using Microsoft.Playwright;
namespace PlaywrightTests;
[TestClass]
public class BlazorTest : PageTest
{
private static WebApplication _app = null!;
[AssemblyInitialize]
public static void AssemblyInitialize2(TestContext context)
{
Console.Error.WriteLine("AssemblyInitialize");
var baseDir = Path.Combine(AppContext.BaseDirectory, "..", "..", "..");
var builder = WebApplication.CreateBuilder(new WebApplicationOptions(){
EnvironmentName = "Development",
ContentRootPath = baseDir,
WebRootPath = Path.Combine(baseDir, "wwwroot"),
ApplicationName = "BlazorApp",
});
// Add services to the container.
builder.Services.AddRazorPages();
builder.Services.AddServerSideBlazor();
builder.Services.AddSingleton<WeatherForecastService>();
_app = builder.Build();
// Configure the HTTP request pipeline.
if (!_app.Environment.IsDevelopment())
{
_app.UseExceptionHandler("/Error");
}
_app.UseStaticFiles();
_app.UseRouting();
_app.MapBlazorHub();
_app.MapFallbackToPage("/_Host");
var readyTcs = new CancellationTokenSource();
_ = Task.Run(async() =>
{
await _app.StartAsync(readyTcs.Token);
readyTcs.Cancel();
}).ConfigureAwait(false);
readyTcs.Token.WaitHandle.WaitOne();
}
[AssemblyCleanup]
public async static Task AssemblyCleanup()
{
await _app.StopAsync();
}
public override BrowserNewContextOptions ContextOptions()
{
var options = base.ContextOptions() ?? new();
options.BaseURL = "http://localhost:5000";
return options;
}
}