Playwright est un puissant framework de test de bout en bout (E2E) qui permet aux développeurs d'écrire des tests robustes et fiables pour les applications Web modernes. Lorsqu'il est utilisé avec Vue.js, Playwright peut garantir que votre application fonctionne de manière transparente sur différents navigateurs et appareils. Voici quelques bonnes pratiques pour intégrer efficacement Playwright à Vue.js.
Installer Playwright
Avant d'écrire des tests, installez Playwright dans votre projet :
npm install -D @playwright/test
Vous pouvez également installer des dépendances spécifiques au navigateur avec :
npx playwright install
Créez un fichier playwright.config.ts ou .js pour personnaliser les paramètres tels que les types de navigateur, les délais d'attente et l'URL de base :
import { defineConfig } from '@playwright/test'; export default defineConfig({ testDir: './tests/e2e', use: { baseURL: 'http://localhost:3000', headless: true, screenshot: 'only-on-failure', trace: 'on-first-retry', }, });
Assurez-vous que votre infrastructure de test sait quand votre application Vue est prête en ajoutant des commandes pour démarrer et arrêter le serveur de développement.
Maintenez une structure claire pour vos fichiers de test afin d'améliorer la lisibilité et la maintenabilité. Une structure commune est :
project/ ├── src/ ├── tests/ │ ├── e2e/ │ │ ├── example.spec.ts │ │ ├── login.spec.ts │ ├── fixtures/ │ ├── helpers/
Exploitez des outils tels que Vue Test Utils ou Cypress Component Testing pour tester les composants de manière isolée. Cela permet de garantir que les composants individuels de Vue fonctionnent correctement avant d'exécuter des tests E2E plus complexes avec Playwright.
Évitez de vous fier à de vrais systèmes backend lors des tests E2E. Utilisez l'API de route de Playwright pour intercepter les requêtes réseau et les réponses simulées :
test('loads mock data', async ({ page }) => { await page.route('**/api/data', route => route.fulfill({ status: 200, body: JSON.stringify({ key: 'value' }), }) ); await page.goto('/'); await expect(page.locator('#data-key')).toHaveText('value'); });
Cela garantit la cohérence des résultats des tests et accélère l'exécution.
Playwright prend en charge des stratégies de sélection robustes, notamment :
<button data-testid="submit-button">Submit</button>
const button = page.locator('button[data-testid="submit-button"]');
Évitez de vous fier à des délais d'attente fixes comme page.waitForTimeout(1000). Utilisez plutôt les utilitaires waitFor de Playwright pour attendre des conditions spécifiques :
npm install -D @playwright/test
Playwright prend en charge l'exécution de tests en parallèle, ce qui peut réduire considérablement la durée des tests :
npx playwright install
import { defineConfig } from '@playwright/test'; export default defineConfig({ testDir: './tests/e2e', use: { baseURL: 'http://localhost:3000', headless: true, screenshot: 'only-on-failure', trace: 'on-first-retry', }, });
project/ ├── src/ ├── tests/ │ ├── e2e/ │ │ ├── example.spec.ts │ │ ├── login.spec.ts │ ├── fixtures/ │ ├── helpers/
Intégrez Playwright à votre pipeline CI/CD pour détecter les problèmes rapidement. Assurer le pipeline :
Pour les actions GitHub, un exemple de configuration pourrait ressembler à :
test('loads mock data', async ({ page }) => { await page.route('**/api/data', route => route.fulfill({ status: 200, body: JSON.stringify({ key: 'value' }), }) ); await page.goto('/'); await expect(page.locator('#data-key')).toHaveText('value'); });
Assurez-vous d'attendre la fin de la navigation lorsque vous interagissez avec Vue Router :
<button data-testid="submit-button">Submit</button>
Vérifier les changements dans le DOM résultant du système de réactivité de Vue :
const button = page.locator('button[data-testid="submit-button"]');
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!