Add project files.
This commit is contained in:
28
EATestFramework/Driver/BrowserDriver.cs
Normal file
28
EATestFramework/Driver/BrowserDriver.cs
Normal file
@ -0,0 +1,28 @@
|
||||
using OpenQA.Selenium;
|
||||
using OpenQA.Selenium.Chrome;
|
||||
using OpenQA.Selenium.Firefox;
|
||||
using WebDriverManager;
|
||||
using WebDriverManager.DriverConfigs.Impl;
|
||||
|
||||
namespace EATestFramework.Driver;
|
||||
|
||||
public class BrowserDriver : IBrowserDriver
|
||||
{
|
||||
public IWebDriver GetChromeDriver()
|
||||
{
|
||||
new DriverManager().SetUpDriver(new ChromeConfig());
|
||||
return new ChromeDriver();
|
||||
}
|
||||
|
||||
public IWebDriver GetFirefoxDriver()
|
||||
{
|
||||
new DriverManager().SetUpDriver(new FirefoxConfig());
|
||||
return new FirefoxDriver();
|
||||
}
|
||||
}
|
||||
|
||||
public enum BrowserType
|
||||
{
|
||||
Chrome,
|
||||
Firefox
|
||||
}
|
||||
34
EATestFramework/Driver/DriverFixture.cs
Normal file
34
EATestFramework/Driver/DriverFixture.cs
Normal file
@ -0,0 +1,34 @@
|
||||
using EATestFramework.Settings;
|
||||
using OpenQA.Selenium;
|
||||
|
||||
namespace EATestFramework.Driver
|
||||
{
|
||||
|
||||
public class DriverFixture : IDriverFixture
|
||||
{
|
||||
IWebDriver driver;
|
||||
private readonly TestSettings _testSettings;
|
||||
private readonly IBrowserDriver _browserDriver;
|
||||
|
||||
public DriverFixture(TestSettings testSettings, IBrowserDriver browserDriver)
|
||||
{
|
||||
_testSettings = testSettings;
|
||||
_browserDriver = browserDriver;
|
||||
driver = GetWebDriver();
|
||||
|
||||
}
|
||||
|
||||
public IWebDriver Driver => driver;
|
||||
|
||||
public IWebDriver GetWebDriver()
|
||||
{
|
||||
return _testSettings.BrowserType switch
|
||||
{
|
||||
BrowserType.Chrome => _browserDriver.GetChromeDriver(),
|
||||
BrowserType.Firefox => _browserDriver.GetFirefoxDriver(),
|
||||
_ => _browserDriver.GetChromeDriver()
|
||||
};
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
9
EATestFramework/Driver/IBrowserDriver.cs
Normal file
9
EATestFramework/Driver/IBrowserDriver.cs
Normal file
@ -0,0 +1,9 @@
|
||||
using OpenQA.Selenium;
|
||||
|
||||
namespace EATestFramework.Driver;
|
||||
|
||||
public interface IBrowserDriver
|
||||
{
|
||||
IWebDriver GetChromeDriver();
|
||||
IWebDriver GetFirefoxDriver();
|
||||
}
|
||||
10
EATestFramework/Driver/IDriverFixture.cs
Normal file
10
EATestFramework/Driver/IDriverFixture.cs
Normal file
@ -0,0 +1,10 @@
|
||||
using OpenQA.Selenium;
|
||||
|
||||
namespace EATestFramework.Driver
|
||||
{
|
||||
public interface IDriverFixture
|
||||
{
|
||||
IWebDriver Driver { get; }
|
||||
|
||||
}
|
||||
}
|
||||
19
EATestFramework/Driver/WebDriverInitializerExtension.cs
Normal file
19
EATestFramework/Driver/WebDriverInitializerExtension.cs
Normal file
@ -0,0 +1,19 @@
|
||||
using EATestFramework.Settings;
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
|
||||
namespace EATestFramework.Driver;
|
||||
public static class WebDriverInitializerExtension
|
||||
{
|
||||
public static IServiceCollection UseWebDriverInitializer(
|
||||
this IServiceCollection services,
|
||||
BrowserType browserType)
|
||||
{
|
||||
services.AddSingleton(new TestSettings
|
||||
{
|
||||
BrowserType = browserType
|
||||
});
|
||||
|
||||
return services;
|
||||
}
|
||||
}
|
||||
|
||||
27
EATestFramework/EATestFramework.csproj
Normal file
27
EATestFramework/EATestFramework.csproj
Normal file
@ -0,0 +1,27 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net6.0</TargetFramework>
|
||||
<Nullable>enable</Nullable>
|
||||
|
||||
<IsPackable>false</IsPackable>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.0.0" />
|
||||
<PackageReference Include="Selenium.Support" Version="4.1.0" />
|
||||
<PackageReference Include="Selenium.WebDriver" Version="4.1.0" />
|
||||
<PackageReference Include="WebDriverManager" Version="2.12.3" />
|
||||
<PackageReference Include="xunit" Version="2.4.1" />
|
||||
<PackageReference Include="Xunit.DependencyInjection" Version="8.3.0" />
|
||||
<PackageReference Include="xunit.runner.visualstudio" Version="2.4.3">
|
||||
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
|
||||
<PrivateAssets>all</PrivateAssets>
|
||||
</PackageReference>
|
||||
<PackageReference Include="coverlet.collector" Version="3.1.0">
|
||||
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
|
||||
<PrivateAssets>all</PrivateAssets>
|
||||
</PackageReference>
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
9
EATestFramework/Settings/TestSettings.cs
Normal file
9
EATestFramework/Settings/TestSettings.cs
Normal file
@ -0,0 +1,9 @@
|
||||
using EATestFramework.Driver;
|
||||
|
||||
namespace EATestFramework.Settings
|
||||
{
|
||||
public class TestSettings
|
||||
{
|
||||
public BrowserType BrowserType { get; set; }
|
||||
}
|
||||
}
|
||||
15
EATestFramework/Startup.cs
Normal file
15
EATestFramework/Startup.cs
Normal file
@ -0,0 +1,15 @@
|
||||
using EATestFramework.Driver;
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
|
||||
namespace EATestFramework
|
||||
{
|
||||
public class Startup
|
||||
{
|
||||
public void ConfigureServices(IServiceCollection services)
|
||||
{
|
||||
services.UseWebDriverInitializer(BrowserType.Firefox);
|
||||
services.AddScoped<IBrowserDriver, BrowserDriver>();
|
||||
services.AddScoped<IDriverFixture, DriverFixture>();
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user