[*] Войти в систему, когда тестовый класс начинает выполнять. < /Li>
Держите сеанс браузера открытым Запуск всех методов испытаний внутри тестового класса. < /li>
Закройте браузер только после последнего метода тестирования в завершении класса. < /li>
< /ol>
В настоящее время я использую Testinitialize для логики входа в систему, но это означает, что я должен запускать каждый метод испытания индивидуально. Если я запускаю все методы вместе, логика входа в систему выполняется перед каждым тестом, которого я хочу избежать. T Работайте как классификация , похоже, не поддерживает асинхронные методы Playwright. /> Реализация логики входа в классификацию , но я не мог бы использовать асинхро Логика входа в систему для выполнения перед каждым методом испытаний.
[*] Запуск методов испытаний один за другим, но это неэффективно. /> мой код: < /h3>
Вот упрощенная версия моей настройки теста: < /p>
using Microsoft.Playwright;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace AutomationTestRuns
{
public abstract class BaseTest : PageTest
{
public override BrowserNewContextOptions ContextOptions()
{
return new BrowserNewContextOptions
{
ViewportSize = ViewportSize.NoViewport,
StorageStatePath = "state.json",
};
}
[TestInitialize]
public async Task Startup()
{
Page.SetDefaultTimeout(30000);
await Page.GotoAsync("https://practice.expandtesting.com/login");
await Page.Locator("#username").FillAsync("practice");
await Page.Locator("#password").FillAsync("SuperSecretPassword!");
await Page.Locator("xpath=//button[normalize-space()='Login']").ClickAsync();
}
[TestCleanup]
public async Task Cleanup()
{
await Page.WaitForTimeoutAsync(5000);
if (Page != null) await Page.CloseAsync();
if (Context != null) await Context.CloseAsync();
if (Browser != null) await Browser.CloseAsync();
}
}
}
namespace AutomationTestRuns
{
[TestClass]
public class TestClass1 : BaseTest
{
[TestMethod]
public async Task TestClass1_Method1()
{
await Page.WaitForURLAsync("https://practice.expandtesting.com/secure");
var h1 = Page.Locator("xpath=//h1[normalize-space()='Secure Area']");
Assert.IsNotNull(h1);
}
[TestMethod]
public async Task TestClass1_Method2()
{
await Page.WaitForURLAsync("https://practice.expandtesting.com/secure");
var h3 = Page.Locator("xpath=//h1[normalize-space()='Hi, practice!']");
Assert.IsNotNull(h3);
}
}
}
< /code>
Проблема: < /h3>
- Я хочу, чтобы один раз вошел в систему, выполните все методы испытаний в TestClass1 < /code > и закройте браузер только после того, как последний метод испытаний завершится. < /li>
Как я могу достичь этого в драматурге с C#? Есть ли конкретная конфигурация или команда для запуска всех методов испытаний в конкретном классе тестов при повторном использовании сеанса браузера?
из I запустить тестовый класс из Test Explorer < /p>
Любая помощь или руководство будут высоко оценены.
Подробнее здесь: https://stackoverflow.com/questions/794 ... he-browser