Как использовать несколько тегов/аннотаций в тестах с помощью Playwright

Согласно Документации по тестированию драматургов

Тестирование тегов выглядит следующим образом:

test('My test @foo', async ({ page }) => {
  // ...
});

Но о мультитегировании не упоминается.

Я ищу что-то вроде:

test('My test @foo, bar', async ({ page }) => {});
or
test('My test @foo bar', async ({ page }) => {});
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
0
907
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Ответ принят как подходящий

Я нашел решение, оно очень простое и понятное: просто разделяйте теги пробелом:

test('My test @foo @bar', async ({ page }) => {
  // ...
});

Исполнение:

// foo OR bar
npx playwright test --grep "@foo|@bar"

// foo AND bar
npx playwright test --grep "(?=.*@foo)(?=.*@bar)"

Рассматривали ли вы предложение обновить документацию?

jonrsharpe 25.02.2024 14:16

@jonrsharpe вообще-то да, я все еще изучаю этот процесс, но спасибо за предложение.

I.sh. 25.02.2024 15:00

Теперь это включено в документацию

sahmeepee 02.03.2024 17:01

Есть два способа использования нескольких тегов.

  1. группирую мои тесты в блоке test.describe и использую тег на этом уровне, а затем также использую тег на уровне теста, как показано ниже.
test.describe("Sample test group @smoke @integrations", () => {

  test("Login Test case @regression", async ({
    page,
  }) => {

    // Arrange
    // Act
    
    // Assert
    

  }); // Test case closing

  }); // Test.describe block closing

альтернативно, следующее

  1. Используйте несколько тегов в тестовых примерах
  test("Login Test case @regression @smoke @integrations", async ({
    page,
  }) => {

    // Arrange
    // Act
    
    // Assert
    

  }); // Test case closing


а затем я использую скрипт для их запуска следующим образом в package.json

    "smoke-tests": "npx playwright test --grep @smoke"

если вы не хотите запускать его через скрипты, вы можете использовать следующую команду в терминале

npx playwright test --grep @smoke

Обновление: Начиная с версии Playwright 1.42, теперь вы можете комментировать тесты, добавляя объект-тег в объявление теста, вставив из официальной документации:

test.describe('group', {
  tag: ['@report'],
}, () => {
  test('test full report', {
    tag: ['@slow', '@vrt'],
  }, async ({ page }) => {
    // ...
  });
});

Другие вопросы по теме