Aller au contenu principal

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.

  1. Sous le dossier Snowfall.Tests/Web.Mvc -> Add -> Directory
  2. Nommer le dossier TestsE2E
  3. Sous le dossier Snowfall.Tests/Web.Api -> Add -> Directory
  4. Nommer le dossier TestsE2E

Installer Playwright

  1. Ajouter Playwright. Si ce n'est pas déjà fait, dans le projet Test, ajoutez Microsoft.Playwright via NuGet.

  2. Build. Compilez (build) la solution / le projet de test, il nous faudra à la prochaine étape accéder au dossier bin contentant un fichier exécutable Playwright et ce fichier ne sera créé que lors de la compilation.

  3. 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
    ...
    attention

    Si 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."
    1. Modifiez le fichier .csproj du projet de test pour y ajouter <HasRuntimeOutput>true</HasRuntimeOutput> à l'intérieur de <PropertyGroup>.
    2. Clean build
    3. Build