Имхо селективный запуск тестов лучшим образом можно провернуть как уже выше сказали при помощи CI. Например Jenkins, где n кол-во job’ов соответствуют n кол-ву специфических задач.
Тут есть нюансы:
а) каждая задача по своему ресурсу требует для себя некий контейнер ( виртуальная машина ), и с каждым тестом ВМ уникально воссоздается (e.g. OpenStack как выбранное решение для слоя виртуализации),
б) использует имеющийся снепшот определенной виртуалки (VirtualBox, VMWare, etc)
В первом случае при должных мощностях париться вообще не стоит - инстансы теста будут рождаться и умирать.
Во втором случае имеет смысл создать job’ы в соотношении 1 к 1 с виртуальными машинами, на которых выполняется тест.
Для чего это нужно? И как это помогает селективному запуску тестов?
Jenkins позволяет запускать параметризированные сборки, в которых вы можете как угодно описать пареметры теста. (на примерt cli утилиты для тестирования на Питоне: nosetests C:\my_project\tests\test_login.py:Login --nocapture ) - тут все опирается в то, как ваши тесты оформлены - имеют ли они собой дизайн тестового фреймворка, и если да, то тут все продиктовано конвенцией запуска теста\модуля\сьюта\тестметода
В примере с nosetests я указываю для текущей папки файл скрипт test_login, содержащий тест-класс Login, который должен быть протестирован. Т.е. параметризованность дженкинса в этом случае должна соответствовать конкретной тестируемой утилите + оформленность тестов во всем многообразии Скоупов: тест-сьюты, все тест классы, etc.
Если хочется еще сильнее изолировать (упростить для маркетологов\прочих не автоматизаторов) запуск тестов - можно пойти дальше и написать десктоп\веб приложение, которое будет всего-навсего формировать JSON api запрос из выбранных комбо-боксов\чекбоксов и т.д, а затем слать сформированный запрос на jenkins сервер, запуская задачу с нужными параметрами.