testng-skill
TestNG Skill — это узкий workflow для Java-проектов, в которых нужно проектировать и поддерживать тесты на базе TestNG. Публичный SKILL.md связывает навык с Java и с конкретными запросами: TestNG, аннотациями @DataProvider, файлом testng.xml, TestNG Suite и параллельными Java-тестами. Поэтому карточка подходит для задачи, где уже выбран TestNG и требуется предметная помощь с организацией тестового кода, а не для абстрактного генератора тестов без привязки к фреймворку. Основной материал показывает несколько взаимосвязанных паттернов. В примере тестового класса используются @BeforeMethod и @AfterMethod для подготовительной и завершающей части сценария, @Test для тестовых методов, groups для разделения smoke- и regression-проверок, dependsOnMethods для явной зависимости, а expectedExceptions для проверки ожидаемого исключения. В том же примере встречаются проверки успешного входа, доступности содержимого dashboard и неверного пароля. Эти фрагменты иллюстрируют форму TestNG-класса и типы аннотаций, но сами по себе не задают готовую бизнес-логику: сервис, тестовые данные и утверждения должны соответствовать конкретному Java-проекту. Отдельный блок посвящён DataProvider. Навык показывает поставщика данных, который возвращает наборы аргументов, и тест с параметрами email, password и expected. Такой подход позволяет запускать один тестовый метод на нескольких заранее описанных входах и ожидаемых результатах. Это полезно для позитивных и негативных вариантов одного сценария, но качество набора зависит от того, какие случаи выбраны командой. Источник также подчёркивает различие между независимыми тестами и чрезмерным использованием dependsOnMethods: каскадные зависимости могут превращать одну ошибку в цепочку пропусков или отказов. Для управления suite навык использует testng.xml. В примере XML задаются имя suite, несколько test-блоков, включение smoke-группы, включение regression и исключение flaky-группы, а также классы и package-маски. Для параллельного выполнения приведены варианты parallel=methods, parallel=classes и parallel=tests; thread-count задаёт число потоков в соответствующем примере. Эти настройки дают основу для разделения быстрых smoke-проверок, полного regression-прогона и параллельных наборов, однако выбор уровня параллельности должен учитывать состояние окружения и потокобезопасность самого тестового кода. Карточка также охватывает SoftAssert, когда несколько проверок накапливаются до вызова soft.assertAll(), и listeners через ITestListener. В примере listener реагирует на падение теста и может записать имя неудачного метода, а комментарий указывает на возможные действия вроде скриншота и логирования. Жизненный цикл аннотаций дан как последовательность от @BeforeSuite и @BeforeTest через @BeforeClass, @BeforeMethod и @Test к @AfterMethod, @AfterClass, @AfterTest и @AfterSuite. Это помогает определить место общей подготовки и очистки, но не отменяет необходимости явно закрывать ресурсы и проверять поведение конкретного приложения. Практический запуск в источнике показан через Maven: suite запускается с -DsuiteXmlFile=testng.xml, группа — с -Dgroups=smoke, отдельный класс — с -Dtest=LoginTest. В качестве отчёта указан test-output/index.html. Для дальнейшего углубления SKILL.md ссылается на reference/playbook.md и перечисляет темы: настройка Maven и Surefire, multi-environment suite XML, BaseTest и ThreadLocal для thread-safe driver, расширенные DataProvider, Factory Pattern, production listeners, Soft Assertions, Page Object, стратегии параллельности, Allure и ExtentReports, CI/CD, отладка и checklist. Эти ссылки описывают структуру репозитория навыка; перед применением нужно прочитать сам исходный файл и сверить рекомендации с версией проекта. Ограничения у навыка практические. Он не устанавливает TestNG, Maven, Surefire, браузерный драйвер или CI-конфигурацию автоматически и не проверяет, что приведённые примеры совместимы с конкретными зависимостями. Команды и имена классов из SKILL.md — ориентиры, а не гарантия готового запуска. Параллельность, группы, зависимости, listeners и Page Object требуют проверки в реальном окружении; особенно важно не маскировать нестабильность каскадными зависимостями и не включать одновременно тесты, которые используют общее изменяемое состояние. Наиболее уместный сценарий — Java-команда, уже работающая с TestNG и Maven, которой нужен короткий структурированный маршрут от тестового класса и DataProvider до suite XML, выборочного запуска, listener-обработки и отчёта.
Для чего подходит
- Генерация TestNG-тестов
- DataProvider и groups
- Параллельные Java suites
Установка
Сначала прочитайте SKILL.md и scripts в исходном репозитории. Затем выполните команду в каталоге проекта:
npx skills add https://github.com/LambdaTest/agent-skills/tree/main/testng-skill