Skip to content

Commit

Permalink
chore(generator): use new .NET test attributes (#17172)
Browse files Browse the repository at this point in the history
  • Loading branch information
mxschmitt authored Sep 7, 2022
1 parent c91df61 commit 15add13
Show file tree
Hide file tree
Showing 10 changed files with 46 additions and 28 deletions.
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

0 comments on commit 15add13

Please sign in to comment.