Ответ
Test Suite (Тестовая сьюта/Набор тестов) — это организованная коллекция тестовых случаев, объединённых для выполнения общей цели. Наборы позволяют группировать и запускать тесты логически, а не по одному.
Цели создания Test Suite:
- Регрессионное тестирование: Запуск всех тестов, проверяющих, что новая функциональность не сломала существующую.
- Дымовое тестирование (Smoke Suite): Быстрая проверка критически важных функций системы после сборки.
- Наборы по функциональности: Все тесты для конкретного модуля (например,
LoginTestSuite) или пользовательского сценария. - Селективный запуск: Выполнение только определённых категорий тестов (например, медленных интеграционных тестов — ночью).
Способы создания (на примере Python unittest):
import unittest
class TestMath(unittest.TestCase):
def test_add(self):
self.assertEqual(1 + 1, 2)
def test_multiply(self):
self.assertEqual(2 * 3, 6)
class TestString(unittest.TestCase):
def test_upper(self):
self.assertEqual('foo'.upper(), 'FOO')
# Способ 1: Автоматическое создание сьюты из всех тестовых классов
suite = unittest.TestLoader().loadTestsFromTestCase(TestMath)
suite.addTest(unittest.TestLoader().loadTestsFromTestCase(TestString))
# Способ 2: Ручное добавление конкретных тестовых методов
manual_suite = unittest.TestSuite()
manual_suite.addTest(TestMath('test_add'))
manual_suite.addTest(TestString('test_upper'))
# Запуск сьюты
runner = unittest.TextTestRunner(verbosity=2)
runner.run(suite)
На практике Test Suite часто определяются конфигурационными файлами фреймворков (например, pytest через маркеры @pytest.mark.smoke) или в CI/CD пайплайнах для разных стадий.