Skip to content

Commit c26b200

Browse files
committed
Updated Selenium to 4.0.0-alpha07. Simplified SeleniumServerFactory.
1 parent 79fead0 commit c26b200

File tree

3 files changed

+8
-50
lines changed

3 files changed

+8
-50
lines changed

src/Tests/AspNetCoreTemplate.Web.Tests/AspNetCoreTemplate.Web.Tests.csproj

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,8 @@
1515
<ItemGroup>
1616
<PackageReference Include="Microsoft.AspNetCore.Mvc.Testing" Version="5.0.0" />
1717
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.8.0" />
18-
<PackageReference Include="Selenium.Support" Version="3.141.0" />
19-
<PackageReference Include="Selenium.WebDriver" Version="3.141.0" />
18+
<PackageReference Include="Selenium.WebDriver" Version="4.0.0-alpha07" />
19+
<PackageReference Include="Selenium.WebDriver.ChromeDriver" Version="87.0.4280.2000" />
2020
<PackageReference Include="xunit" Version="2.4.1" />
2121
<PackageReference Include="xunit.runner.visualstudio" Version="2.4.3">
2222
<PrivateAssets>all</PrivateAssets>

src/Tests/AspNetCoreTemplate.Web.Tests/SeleniumServerFactory.cs

Lines changed: 5 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
namespace AspNetCoreTemplate.Web.Tests
22
{
33
using System;
4-
using System.Diagnostics;
54
using System.Linq;
65

76
using Microsoft.AspNetCore;
@@ -14,56 +13,17 @@
1413
public sealed class SeleniumServerFactory<TStartup> : WebApplicationFactory<TStartup>
1514
where TStartup : class
1615
{
17-
private readonly Process process;
18-
private IWebHost host;
19-
2016
public SeleniumServerFactory()
2117
{
22-
this.ClientOptions.BaseAddress = new Uri("https://localhost"); // will follow redirects by default
23-
this.CreateServer(this.CreateWebHostBuilder());
24-
25-
this.process = new Process
26-
{
27-
StartInfo = new ProcessStartInfo
28-
{
29-
FileName = "selenium-standalone",
30-
Arguments = "start",
31-
UseShellExecute = true,
32-
},
33-
};
34-
this.process.Start();
18+
this.ClientOptions.BaseAddress = new Uri("https://localhost");
19+
var host = WebHost.CreateDefaultBuilder(Array.Empty<string>()).UseStartup<TStartup>().Build();
20+
host.Start();
21+
this.RootUri = host.ServerFeatures.Get<IServerAddressesFeature>().Addresses.LastOrDefault();
22+
var testServer = new TestServer(new WebHostBuilder().UseStartup<FakeStartup>());
3523
}
3624

3725
public string RootUri { get; set; }
3826

39-
protected override TestServer CreateServer(IWebHostBuilder builder)
40-
{
41-
this.host = builder.Build();
42-
this.host.Start();
43-
this.RootUri = this.host.ServerFeatures.Get<IServerAddressesFeature>().Addresses.LastOrDefault(); // Last is https://localhost:5001!
44-
45-
// Fake Server we won't use...this is lame. Should be cleaner, or a utility class
46-
return new TestServer(new WebHostBuilder().UseStartup<FakeStartup>());
47-
}
48-
49-
protected override IWebHostBuilder CreateWebHostBuilder()
50-
{
51-
var builder = WebHost.CreateDefaultBuilder(Array.Empty<string>());
52-
builder.UseStartup<TStartup>();
53-
return builder;
54-
}
55-
56-
protected override void Dispose(bool disposing)
57-
{
58-
base.Dispose(disposing);
59-
if (disposing)
60-
{
61-
this.host.Dispose();
62-
this.process.CloseMainWindow(); // Be sure to stop Selenium Standalone
63-
this.process.Dispose();
64-
}
65-
}
66-
6727
public class FakeStartup
6828
{
6929
public void ConfigureServices(IServiceCollection services)

src/Tests/AspNetCoreTemplate.Web.Tests/SeleniumTests.cs

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44

55
using OpenQA.Selenium;
66
using OpenQA.Selenium.Chrome;
7-
using OpenQA.Selenium.Remote;
87

98
using Xunit;
109

@@ -13,14 +12,13 @@ public class SeleniumTests : IClassFixture<SeleniumServerFactory<Startup>>, IDis
1312
private readonly SeleniumServerFactory<Startup> server;
1413
private readonly IWebDriver browser;
1514

16-
// Be sure that selenium-server-standalone-3.141.59.jar is running
1715
public SeleniumTests(SeleniumServerFactory<Startup> server)
1816
{
1917
this.server = server;
2018
server.CreateClient();
2119
var opts = new ChromeOptions();
2220
opts.AddArguments("--headless", "--ignore-certificate-errors");
23-
this.browser = new RemoteWebDriver(opts);
21+
this.browser = new ChromeDriver(opts);
2422
}
2523

2624
[Fact(Skip = "Example test. Disabled for CI.")]

0 commit comments

Comments
 (0)