没有找到合适的构造函数将Playwright与NUnit一起使用



我有一个基类作为

public class PlaywrightFixture
{
public Task<IPlaywright> Playwright { get; set; } = default;
public Task<IBrowser> Browser { get; set; } = default;

private readonly PlaywrightFixture _playwrightFixture;
private static string _readonlypageUrl;
private readonly IConfiguration _iAppSettingConfiguration;
private UserCredentials _userCredentials = new UserCredentials(null, null);
public PlaywrightFixture(PlaywrightFixture playwrightFixture)
{
_iAppSettingConfiguration = IAppSettingConfiguration.InitConfiguration();
_readonlypageUrl = _iAppSettingConfiguration["baseUrl"];

_iAppSettingConfiguration.GetSection("user").Bind(_userCredentials);

_playwrightFixture = playwrightFixture;
//_playwrightFixture.Playwright = Playwright.CreateAsync();
_playwrightFixture.Browser = _playwrightFixture.Playwright.Result.Chromium.LaunchAsync(
new BrowserTypeLaunchOptions
{
Headless = false,
SlowMo = 200,
});
}
}

单元测试用例

public class GivenAccount : PlaywrightFixture   
{
private readonly PlaywrightFixture _playwrightFixture;
private static string _readonlypageUrl;
private readonly IConfiguration _iAppSettingConfiguration;
private UserCredentials _userCredentials = new UserCredentials(null, null);

public GivenAccount(PlaywrightFixture playwrightFixture) : base(playwrightFixture)
{
}

[Test]
public async Task Then_Login_Page_Should_Load()
{
var page = await _playwrightFixture.Browser.Result.NewPageAsync();
await page.GotoAsync(_readonlypageUrl);
string title = await page.TitleAsync();
Assert.AreEqual("6clicks", title);
}
}

异常

OneTimeSetUp: No suitable constructor was found
Exception doesn't have a stacktrace

-----
No suitable constructor was found
Exception doesn't have a stacktrace

您已经创建了一个基于PlaywriteFixture的fixtureGivenAccount。它的构造函数接受一个参数,该参数是另一个PlaywriteFixture

然而,您并没有给NUnit一个参数来构造您的fixture。您应该使用[TestFixturesource("name_of_your_source")]执行此操作在CCD_ 5类上。

最新更新