Blazor などフロント側も C# で開発していると、E2E テストも C# で統一したくなります。
本記事では、.NET 向け Playwright を使ってテストを動かすまでの流れと、実際にハマった「テストが 0 件になる」問題の対処を書きます。
公式ドキュメント:
先に結論
- Node.js 環境は必須ではない(基本は .NET だけで進められる)
- ただしブラウザ導入で PowerShell 実行が必要
-
dotnet testでテストが 0 件になる場合は、Microsoft.Playwright.MSTest.v4を使うと解決するケースがある
環境作成〜初回実行の流れ
以下は最小構成の流れです(MSTest ベース)。
dotnet new mstest -n PlaywrightTests
cd PlaywrightTests
dotnet add package Microsoft.Playwright.MSTest.v4
pwsh bin/Debug/net10.0/playwright.ps1 install
dotnet test
playwright.ps1のパスは TargetFramework により変わります(net8.0/net10.0など)。
テストが見つからない問題
チュートリアル通りに進めても、次のように「使用できるテストはありません」と表示されることがありました。
dotnet test
...
warning ... で使用できるテストはありません。
...
テスト概要: 合計: 0, 失敗数: 0, 成功数: 0, スキップ済み数: 0
当初は .csproj を調整して動かしていましたが、ライブラリ更新後に再発しました。
対処方法
GitHub Issue でも報告されている通り、Microsoft.Playwright.MSTest ではなく Microsoft.Playwright.MSTest.v4 を使うと解消しました。
ポイント
- パッケージ導入時点で
Microsoft.Playwright.MSTest.v4を使う - それ以外の手順はチュートリアルに沿って OK
まとめ
C# で Playwright を使う場合、セットアップ自体はシンプルですが、バージョン組み合わせでテスト探索に失敗することがあります。
もし dotnet test で 0 件になるなら、まず Microsoft.Playwright.MSTest.v4 を試すのが近道です。
今後は、ローカル実行と CI 実行の差分(DB 接続・ファイル出力・外部依存)も吸収できるテスト設計にしていく予定です。
参考