TextFixture и Test
public class TestFixture : IDisposable
{
public TestFixture()
{
var options = new ChromeOptions();
options.AddExcludedArgument("enable-automation");
options.AddAdditionalCapability("useAutomationExtension", true);
WebDriver.Init("https://localhost:44335/", Browser.Chrome, options);
WebDriver.GetDriver.Manage().Window.Maximize();
}
public void Dispose()
{
WebDriver.Close();
}
}
public abstract class Test : IClassFixture<TestFixture>
{
}
AuthTest
public abstract class AuthTest : Test
{
[Fact, Priority(-1)]
public void LoginTest()
{
var home = GetPage<HomePage>();
home.LoginModal.Open();
home.LoginModal.EnterLoginText(new Login("user", "pw"));
home.LoginModal.Login();
GetPage<DashboardPage>().IsAt();
}
}
HomeTest
[TestCaseOrderer(PriorityOrderer.Name, PriorityOrderer.Assembly)]
public sealed class HomeTest : AuthTest
{
}
ProfileTest
[TestCaseOrderer(PriorityOrderer.Name, PriorityOrderer.Assembly)]
public sealed class ProfileTest : AuthTest
{
[Fact, Priority(0)]
public void OpenProfilePageTest()
{
var profile = GetPage<ProfilePage>();
profile.GoTo();
profile.IsAt();
}
[Fact, Priority(1)]
public void LogoutTest() => GetPage<DashboardPage>().Logout();
}
Несколько дней назад я написал этот код, и он использовался для создания 1 экземпляра браузера. Я сегодня снова запустил проект, и теперь внезапно прибор запускается дважды, и он открывает два отдельных браузера (что приводит к сбою моих тестов). Я думал, что IClassFixture
должен был выполняться только один раз, как атрибут [OneTimeSetUp]
в NUnit. Почему мой прибор выполняется дважды?
Это происходит, когда я запускаю все тесты (все тесты запускаются ProfileTest
и HomeTest
). Если я, например, запускаю один из двух тестов по отдельности, то открывается только один экземпляр браузера и тест проходит успешно.
Я использую XUnit 2.4.0.
- EDIT -
Когда я использую:
VS 2019 (запустить все тесты): одновременно открывается 2 браузера и происходит сбой.
VS 2019 (отладкавсе тесты): одновременно открывается 2 браузера и происходит сбой.
Jetbrain's Rider IDE (запустить все тесты): одновременно открывается 2 браузера и происходит сбой.
Jetbrain's Rider IDE (отладка всех тестов): он открывает 1 браузер до HomeTest
и затем еще один браузер для ProfileTest
, и оба теста проходят (включая LoginTest
).
Это последнееэто то, как это должно работать, и так было, когда я раньше использовал NUnit.