4-1 Préparation
Les tests E2E Playwright s'appuient sur un réel serveur de test étant exécuté en parallèle des tests. On pourrait démarrer les applications d'un côté et ensuite rouler la batterie de tests de l'autre côté, mais il faudrait alors s'assurer que les projets soient exécutés dans le bon environnement (Test), sans compter le fait que démarrer manuellement les projets est fastidieux.
De plus, chaque test doit s'appuyer sur une nouvelle instance de l'application et de base de données. Il est donc irréaliste de faire ce travail à la main pour chaque test exécuté.
Nous devrons donc configurer deux serveurs de test additionnels que Playwright pourra utiliser.
Ces serveurs sont différents des autres serveurs créés précédemment pour les tests d'intégration. En effet, dans le cas des tests d'intégration, les serveurs sont des serveurs en mémoire utilisé seulement par les tests. Un navigateur ne peut accéder au serveur créé en mémoire.
Comme les tests E2E démarrent un réel navigateur, ce dernier doit avoir accès au serveur de test pour naviguer. Ainsi, il est nécessaire de créer un vrai serveur de test, accessible par un navigateur, mais pouvant être démarré automatiquement par xUnit lors d'un test.
Créer les dossiers
Nous allons commencer par créer des dossiers propres aux tests E2E dans chacun des dossiers de tests MVC/API.
- Sous le dossier
Snowfall.Tests/Web.Mvc
->Add
->Directory
- Nommer le dossier
TestsE2E
- Sous le dossier
Snowfall.Tests/Web.Api
->Add
->Directory
- Nommer le dossier
TestsE2E
Installer Playwright
-
Ajouter Playwright. Si ce n'est pas déjà fait, dans le projet
Test
, ajoutezMicrosoft.Playwright
viaNuGet
. -
Build. Compilez (
build
) la solution / le projet de test, il nous faudra à la prochaine étape accéder au dossierbin
contentant un fichier exécutablePlaywright
et ce fichier ne sera créé que lors de la compilation. -
Installer les navigateurs. Playwright utilise les vrais moteurs de rendu des navigateurs Chromium, Firefox ou WebKit, mais il faut les installer. À partir du dossier du projet de test, exécutez la commande suivante PowerShell:
pwsh bin/Debug/net9.0/playwright.ps1 install
Vous devriez voir le téléchargement et l'installation des navigateurs:
Downloading Chromium 110.0.5481.38 (playwright build v1045) from https://playwright.azureedge.net/builds/chromium/1045/chromium-mac-arm64.zip
123.8 Mb [====================] 100% 0.0s
Chromium 110.0.5481.38 (playwright build v1045) downloaded to /Users/benoit/Library/Caches/ms-playwright/chromium-1045
...attentionSi vous avez l'erreur suivante:
Exception calling "LoadFile" with "1" argument(s): "Could not load file or assembly '[Chemin\Vers\Votre\Projet]\bin\Debug\net6.0\Microsoft.Playwright.dll'. The system cannot find the file specified."
- Modifiez le fichier .csproj du projet de test pour y ajouter
<HasRuntimeOutput>true</HasRuntimeOutput>
à l'intérieur de<PropertyGroup>
. - Clean build
- Build
- Modifiez le fichier .csproj du projet de test pour y ajouter