メインコンテンツへスキップ

テストランナー

はじめに

Playwright for .NET は特定のテストランナーやテストフレームワークに限定されていませんが、私たちの経験では、最も簡単な始め方は、MSTest、NUnit、または xUnit 用に提供されている基本クラスを使用することです。これらのクラスは、複数のブラウザーエンジンでのテスト実行、起動/コンテキストオプションの調整、およびテストごとに Page/BrowserContext インスタンスを取得することをサポートしています。

Playwright と Browser インスタンスは、パフォーマンス向上のためにテスト間で再利用されます。各テストケースを新しい BrowserContext で実行することを推奨します。これにより、ブラウザーの状態がテスト間で隔離されます。

Playwright は、Microsoft.Playwright.MSTest パッケージを介して MSTest でテストを作成するための基本クラスを提供します。

開始するには、インストールガイドを確認してください。

並列でのテスト実行

デフォルトでは、MSTest はすべてのクラスを並列で実行し、各クラス内のテストを順番に実行します (ExecutionScope.ClassLevel)。ホストシステム上のコア数と同じ数のプロセスが作成されます。この動作は、以下の CLI パラメーターを使用するか、.runsettings ファイルを使用して調整できます。メソッドレベル (ExecutionScope.MethodLevel) でのテストの並列実行はサポートされていません。

dotnet test --settings:.runsettings -- MSTest.Parallelize.Workers=4

BrowserContext オプションのカスタマイズ

コンテキストオプションをカスタマイズするには、Microsoft.Playwright.MSTest.PageTest または Microsoft.Playwright.MSTest.ContextTest から派生したテストクラスの ContextOptions メソッドをオーバーライドできます。次の例を参照してください。

using System.Threading.Tasks;
using Microsoft.Playwright;
using Microsoft.Playwright.MSTest;
using Microsoft.VisualStudio.TestTools.UnitTesting;

namespace PlaywrightTests;

[TestClass]
public class ExampleTest : PageTest
{
[TestMethod]
public async Task TestWithCustomContextOptions()
{
// The following Page (and BrowserContext) instance has the custom colorScheme, viewport and baseURL set:
await Page.GotoAsync("/login");
}

public override BrowserNewContextOptions ContextOptions()
{
return new BrowserNewContextOptions()
{
ColorScheme = ColorScheme.Light,
ViewportSize = new()
{
Width = 1920,
Height = 1080
},
BaseURL = "https://github.com",
};
}
}

Browser/起動オプションのカスタマイズ

Browser/起動オプションは、runsettings ファイルを使用するか、CLI を介して runsettings オプションを直接設定することでオーバーライドできます。次の例を参照してください。

<?xml version="1.0" encoding="utf-8"?>
<RunSettings>
<Playwright>
<BrowserName>chromium</BrowserName>
<LaunchOptions>
<Headless>false</Headless>
<Channel>msedge</Channel>
</LaunchOptions>
</Playwright>
</RunSettings>
dotnet test -- Playwright.BrowserName=chromium Playwright.LaunchOptions.Headless=false Playwright.LaunchOptions.Channel=msedge

詳細な API ログの使用

詳細な API ログDEBUG 環境変数を介して有効にすると、標準エラーストリームにメッセージが表示されます。Visual Studio 内では、これは 出力 ウィンドウの テスト ペインになります。また、各テストの テストログ にも表示されます。

.runsettings ファイルの使用

Visual Studio からテストを実行する場合、.runsettings ファイルを利用できます。以下に、サポートされている値のリファレンスを示します。

たとえば、ワーカー数を指定するには MSTest.Parallelize.Workers を使用できます。DEBUG ログを有効にするには、RunConfiguration.EnvironmentVariables を使用することもできます。

<RunSettings>
<!-- MSTest adapter -->
<MSTest>
<Parallelize>
<Workers>4</Workers>
<Scope>ClassLevel</Scope>
</Parallelize>
</MSTest>
<!-- General run configuration -->
<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>msedge</Channel>
</LaunchOptions>
</Playwright>
</RunSettings>

Playwright 用の基本クラス

Microsoft.Playwright.MSTest 名前空間には、いくつかの基本クラスが用意されています。

テスト説明
PageTest各テストは、独自のユニークな BrowserContext で作成されたウェブ Page の新しいコピーを取得します。このクラスを拡張することは、完全に機能する Playwright テストを作成する最も簡単な方法です。

注: 各テストファイルで ContextOptions メソッドをオーバーライドして、通常 Browser.NewContextAsync() メソッドに渡されるコンテキストオプションを制御できます。これにより、テストファイルごとにあらゆる種類のエミュレーションオプションを指定できます。
ContextTest各テストは、BrowserContext の新しいコピーを取得します。このコンテキストでは、必要な数のページを作成できます。このテストを使用することは、複数のタブが必要なマルチページシナリオをテストする最も簡単な方法です。

注: 各テストファイルで ContextOptions メソッドをオーバーライドして、通常 Browser.NewContextAsync() メソッドに渡されるコンテキストオプションを制御できます。これにより、テストファイルごとにあらゆる種類のエミュレーションオプションを指定できます。
BrowserTest各テストはブラウザーを取得し、必要な数のコンテキストを作成できます。各テストは、作成したすべてのコンテキストをクリーンアップする責任があります。
PlaywrightTestこれにより、各テストに Playwright オブジェクトが提供され、テストは必要な数のブラウザーを起動および停止できます。