Playwright 测试运行设置未生效(Headless = False 但仍运行 Headless)

问题描述 投票:0回答:1

我有一个带有运行设置文件的 Playwright 测试解决方案,当测试(Test2)运行时(通过 VS Code 中的测试资源管理器),它处于无头模式,并且似乎忽略了我在根目录中创建的运行设置文件(见下文)。我在同一个解决方案中进行了另一个测试 (Test1),它在类中显式设置了 BrowserTypeLaunchOptions,而不是利用 Base PageTest 类),并且它按预期使用 Chrome 浏览器运行。

Test2类代码:

using Microsoft.Playwright;
using Microsoft.Playwright.NUnit;

namespace Playwright_.NET;

public class NUnitPlaywright : PageTest
{
    [SetUp]
    public async Task Setup()
    {
        await Page.GotoAsync(url: "http://www.eaapp.somee.com");
    }

    [Test]
    public async Task Test1()
    {
        await Page.ClickAsync(selector: "text=Login");

        await Page.ScreenshotAsync(new PageScreenshotOptions
        {
            Path = "../../../Screenshots/EAApp.jpg"
        });
        await Page.FillAsync(selector: "#UserName", value: "admin");
        await Page.FillAsync(selector: "#Password", value: "password");
        await Page.ClickAsync(selector: "text=Log in");
        await Page.ScreenshotAsync(new PageScreenshotOptions
        {
            Path = "../../../Screenshots/Login Assertion.jpg"
        });

        await Expect(Page.Locator(selector: "text='Employee Details'")).ToBeVisibleAsync();

    }
}

test.runsettings 文件

<?xml version="1.0" encoding="utf-8"?>

<RunSettings>
  <!-- Configurations that affect the Test Framework -->
  <RunConfiguration>
    <EnvironmentVariables>
      <!-- For debugging selectors, it's recommend to set the following environment variable -->
      <DEBUG>pw:api</DEBUG>
    </EnvironmentVariables>
    
  </RunConfiguration>

  <!-- Playwright -->  
  <Playwright>
    <BrowserName>chromium</BrowserName>
    <ExpectTimeout>5000</ExpectTimeout>
    <LaunchOptions>
      <Headless>false</Headless>
      <Channel>chrome</Channel>
    </LaunchOptions>
  </Playwright>

  <!-- NUnit adapter -->  
  <NUnit>
    <NumberOfTestWorkers>24</NumberOfTestWorkers>
  </NUnit>


</RunSettings>     

测试1类代码

using Microsoft.Playwright;

namespace Playwright_.NET;

public class Tests
{
    [SetUp]
    public void Setup()
    {
    }

    [Test]
    public async Task Test1()
    {
        //Prepare Playwright driver
        using var playwright = await Playwright.CreateAsync();

        //Launch Browser (not in headless mode)
        await using var browser = await playwright.Chromium.LaunchAsync(new BrowserTypeLaunchOptions()
        {
            Headless = false
        });

        //Navigate to page
        var page = await browser.NewPageAsync(); //NewPageAsync - Convenience api. Frameworks should create IBrowser.NewContextAsync(BrowserNewContextOptions)
        await page.GotoAsync(url: "http://www.eaapp.somee.com");
        //Click login
        await page.ClickAsync(selector: "text=Login");
        //Take Screenshot of login page (current view)
        await page.ScreenshotAsync(new PageScreenshotOptions
        {
            Path = "../../../Screenshots/EAApp.jpg"
        });
        //Input login details and click Log in button
        await page.FillAsync(selector: "#UserName", value: "admin");
        await page.FillAsync(selector: "#Password", value: "password");
        await page.ClickAsync(selector: "text=Log in");
        await page.ScreenshotAsync(new PageScreenshotOptions
        {
            Path = "../../../Screenshots/Login Assertion.jpg"
        });
         //Assertion
        var isExist = await page.Locator(selector: "text='Employee Details'").IsVisibleAsync();
        Assert.IsTrue(isExist);

    }
}
c# nunit playwright-dotnet
1个回答
0
投票

您必须通知 IDE 哪个文件正在运行设置文件,您可以通过以下方式做到这一点

  1. 点击测试
  2. 配置运行设置
  3. 选择解决方案广泛运行设置文件

然后选择您的运行设置文件

© www.soinside.com 2019 - 2024. All rights reserved.