Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

chore(generator): use new .NET test attributes #17172

Merged
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 8 additions & 6 deletions docs/src/api-testing-csharp.md
Original file line number Diff line number Diff line change
Expand Up @@ -94,6 +94,7 @@ using NUnit.Framework;
namespace PlaywrightTests
{

[TestFixture]
public class TestGitHubAPI : PlaywrightTest
{
static string REPO = "test-repo-2";
Expand All @@ -102,7 +103,7 @@ namespace PlaywrightTests

private IAPIRequestContext Request = null;

[Test]
[PlaywrightTest]
public async Task ShouldCreateBugReport()
{
var data = new Dictionary<string, string>();
Expand All @@ -129,7 +130,7 @@ namespace PlaywrightTests
Assert.AreEqual("Bug description", issue?.GetProperty("body").GetString());
}

[Test]
[PlaywrightTest]
public async Task ShouldCreateFeatureRequests()
{
var data = new Dictionary<string, string>();
Expand Down Expand Up @@ -219,6 +220,7 @@ using NUnit.Framework;
namespace PlaywrightTests
{

[TestFixture]
public class TestGitHubAPI : PlaywrightTest
{
static string REPO = "test-repo-2";
Expand All @@ -227,7 +229,7 @@ namespace PlaywrightTests

private IAPIRequestContext Request = null;

[Test]
[PlaywrightTest]
public async Task ShouldCreateBugReport()
{
var data = new Dictionary<string, string>();
Expand All @@ -254,7 +256,7 @@ namespace PlaywrightTests
Assert.AreEqual("Bug description", issue?.GetProperty("body").GetString());
}

[Test]
[PlaywrightTest]
public async Task ShouldCreateFeatureRequests()
{
var data = new Dictionary<string, string>();
Expand Down Expand Up @@ -341,7 +343,7 @@ The following test creates a new issue via API and then navigates to the list of
project to check that it appears at the top of the list. The check is performed using [LocatorAssertions].

```csharp
[Test]
[PlaywrightTest]
public async Task LastCreatedIssueShouldBeFirstInTheList()
{
var data = new Dictionary<string, string>();
Expand All @@ -364,7 +366,7 @@ The following test creates a new issue via user interface in the browser and the
it was created:

```csharp
[Test]
[PlaywrightTest]
public async Task LastCreatedIssueShouldBeOnTheServer()
{
await Page.GotoAsync("https://github.com/" + USER + "/" + REPO + "/issues");
Expand Down
3 changes: 2 additions & 1 deletion docs/src/api/class-locatorassertions.md
Original file line number Diff line number Diff line change
Expand Up @@ -54,9 +54,10 @@ using NUnit.Framework;

namespace PlaywrightTests;

[TestFixture]
public class ExampleTests : PageTest
{
[Test]
[PlaywrightTest]
public async Task StatusBecomesSubmitted()
{
// ..
Expand Down
3 changes: 2 additions & 1 deletion docs/src/api/class-pageassertions.md
Original file line number Diff line number Diff line change
Expand Up @@ -56,9 +56,10 @@ using NUnit.Framework;

namespace PlaywrightTests;

[TestFixture]
public class ExampleTests : PageTest
{
[Test]
[PlaywrightTest]
public async Task NavigatetoLoginPage()
{
// ..
Expand Down
3 changes: 2 additions & 1 deletion docs/src/api/class-playwrightassertions.md
Original file line number Diff line number Diff line change
Expand Up @@ -55,9 +55,10 @@ using NUnit.Framework;

namespace PlaywrightTests;

[TestFixture]
public class ExampleTests : PageTest
{
[Test]
[PlaywrightTest]
public async Task StatusBecomesSubmitted()
{
await Page.Locator("#submit-button").ClickAsync();
Expand Down
5 changes: 3 additions & 2 deletions docs/src/intro-csharp.md
Original file line number Diff line number Diff line change
Expand Up @@ -98,9 +98,10 @@ using NUnit.Framework;
namespace PlaywrightTests;

[Parallelizable(ParallelScope.Self)]
[TestFixture]
public class Tests : PageTest
{
[Test]
[PlaywrightTest]
public async Task HomepageHasPlaywrightInTitleAndGetStartedLinkLinkingtoTheIntroPage()
{
await Page.GotoAsync("https://playwright.dev");
Expand Down Expand Up @@ -135,7 +136,7 @@ namespace PlaywrightTests;
[TestClass]
public class UnitTest1 : PageTest
{
[TestMethod]
[PlaywrightTestMethod]
public async Task HomepageHasPlaywrightInTitleAndGetStartedLinkLinkingtoTheIntroPage()
{
await Page.GotoAsync("https://playwright.dev");
Expand Down
3 changes: 2 additions & 1 deletion docs/src/release-notes-csharp.md
Original file line number Diff line number Diff line change
Expand Up @@ -260,9 +260,10 @@ using NUnit.Framework;

namespace PlaywrightTests;

[TestFixture]
public class ExampleTests : PageTest
{
[Test]
[PlaywrightTest]
public async Task StatusBecomesSubmitted()
{
await Expect(Page.Locator(".status")).ToHaveTextAsync("Submitted");
Expand Down
18 changes: 12 additions & 6 deletions docs/src/test-runners-csharp.md
Original file line number Diff line number Diff line change
Expand Up @@ -41,16 +41,17 @@ using Microsoft.Playwright.NUnit;
namespace PlaywrightTests;

[Parallelizable(ParallelScope.Self)]
[TestFixture]
public class MyTest : PageTest
{
[Test]
[PlaywrightTest]
public async Task ShouldHaveTheCorrectSlogan()
{
await Page.GotoAsync("https://playwright.dev");
await Expect(Page.Locator("text=enables reliable end-to-end testing for modern web apps")).ToBeVisibleAsync();
}

[Test]
[PlaywrightTest]
public async Task ShouldHaveTheCorrectTitle()
{
await Page.GotoAsync("https://playwright.dev");
Expand Down Expand Up @@ -121,9 +122,10 @@ using Microsoft.Playwright.NUnit;
namespace PlaywrightTests;

[Parallelizable(ParallelScope.Self)]
[TestFixture]
public class MyTest : PageTest
{
[Test]
[PlaywrightTest]
public async Task TestWithCustomContextOptions()
{
// The following Page (and BrowserContext) instance has the custom colorScheme, viewport and baseURL set:
Expand Down Expand Up @@ -215,6 +217,10 @@ There are a few base classes available to you in `Microsoft.Playwright.NUnit` na
|BrowserTest |Each test will get a browser and can create as many contexts as it likes. Each test is responsible for cleaning up all the contexts it created.|
|PlaywrightTest|This gives each test a Playwright object so that the test could start and stop as many browsers as it likes.|

### 'No test is available'

You need to add `[TestFixture]` to your test class. NUnit does not discover tests without it, if the `TestAttribute` comes from a different assembly.

## MSTest

Playwright provides base classes to write tests with MSTest via the [`Microsoft.Playwright.MSTest`](https://www.nuget.org/packages/Microsoft.Playwright.MSTest) package.
Expand Down Expand Up @@ -244,14 +250,14 @@ namespace PlaywrightTests;
[TestClass]
public class UnitTest1: PageTest
{
[TestMethod]
[PlaywrightTestMethod]
public async Task ShouldHaveTheCorrectSlogan()
{
await Page.GotoAsync("https://playwright.dev");
await Expect(Page.Locator("text=enables reliable end-to-end testing for modern web apps")).ToBeVisibleAsync();
}

[TestMethod]
[PlaywrightTestMethod]
public async Task ShouldHaveTheCorrectTitle()
{
await Page.GotoAsync("https://playwright.dev");
Expand Down Expand Up @@ -329,7 +335,7 @@ namespace PlaywrightTests;
[TestClass]
public class UnitTest1 : PageTest
{
[TestMethod]
[PlaywrightTestMethod]
public async Task TestWithCustomContextOptions()
{
// The following Page (and BrowserContext) instance has the custom colorScheme, viewport and baseURL set:
Expand Down
15 changes: 9 additions & 6 deletions docs/src/writing-tests-csharp.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,9 +24,10 @@ using Microsoft.Playwright.NUnit;
namespace PlaywrightTests;

[Parallelizable(ParallelScope.Self)]
[TestFixture]
public class Tests : PageTest
{
[Test]
[PlaywrightTest]
public async Task HomepageHasPlaywrightInTitleAndGetStartedLinkLinkingtoTheIntroPage()
{
await Page.GotoAsync("https://playwright.dev");
Expand Down Expand Up @@ -61,7 +62,7 @@ namespace PlaywrightTests;
[TestClass]
public class UnitTest1 : PageTest
{
[TestMethod]
[PlaywrightTestMethod]
public async Task HomepageHasPlaywrightInTitleAndGetStartedLinkLinkingtoTheIntroPage()
{
await Page.GotoAsync("https://playwright.dev");
Expand Down Expand Up @@ -136,9 +137,10 @@ using NUnit.Framework;
namespace PlaywrightTests;

[Parallelizable(ParallelScope.Self)]
[TestFixture]
public class Tests : PageTest
{
[Test]
[PlaywrightTest]
public async Task BasicTest()
{
await Page.GotoAsync("https://playwright.dev");
Expand All @@ -157,7 +159,7 @@ namespace PlaywrightTests;
[TestClass]
public class UnitTest1 : PageTest
{
[TestMethod]
[PlaywrightTestMethod]
public async Task BasicTest()
{
await Page.GotoAsync("https://playwright.dev");
Expand Down Expand Up @@ -190,9 +192,10 @@ using NUnit.Framework;
namespace PlaywrightTests;

[Parallelizable(ParallelScope.Self)]
[TestFixture]
public class Tests : PageTest
{
[Test]
[PlaywrightTest]
public async Task MainNavigation()
{
// Assertions use the expect API.
Expand All @@ -218,7 +221,7 @@ namespace PlaywrightTests;
[TestClass]
public class UnitTest1 : PageTest
{
[TestMethod]
[PlaywrightTestMethod]
public async Task MainNavigation()
{
// Assertions use the expect API.
Expand Down
5 changes: 3 additions & 2 deletions packages/playwright-core/src/server/recorder/csharp.ts
Original file line number Diff line number Diff line change
Expand Up @@ -195,7 +195,8 @@ export class CSharpLanguageGenerator implements LanguageGenerator {
using Microsoft.Playwright.${this._mode === 'nunit' ? 'NUnit' : 'MSTest'};
using Microsoft.Playwright;

${this._mode === 'nunit' ? '[Parallelizable(ParallelScope.Self)]' : '[TestClass]'}
${this._mode === 'nunit' ? `[Parallelizable(ParallelScope.Self)]
[TestFixture]` : '[TestClass]'}
public class Tests : PageTest
{`);
const formattedContextOptions = formatContextOptions(options.contextOptions, options.deviceName);
Expand All @@ -206,7 +207,7 @@ export class CSharpLanguageGenerator implements LanguageGenerator {
}`);
formatter.newLine();
}
formatter.add(` [${this._mode === 'nunit' ? 'Test' : 'TestMethod'}]
formatter.add(` [${this._mode === 'nunit' ? 'PlaywrightTest' : 'PlaywrightTestMethod'}]
public async Task MyTest()
{`);
return formatter.format();
Expand Down
5 changes: 3 additions & 2 deletions tests/library/inspector/cli-codegen-csharp.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -232,7 +232,7 @@ public class Tests : PageTest
};
}

[TestMethod]
[PlaywrightTestMethod]
public async Task MyTest()
{
// Go to ${emptyHTML}
Expand All @@ -250,6 +250,7 @@ test(`should print a valid basic program in nunit`, async ({ runCLI }) => {
using Microsoft.Playwright;

[Parallelizable(ParallelScope.Self)]
[TestFixture]
public class Tests : PageTest
{
public override BrowserNewContextOptions ContextOptions()
Expand All @@ -260,7 +261,7 @@ public class Tests : PageTest
};
}

[Test]
[PlaywrightTest]
public async Task MyTest()
{
// Go to ${emptyHTML}
Expand Down