У меня есть набор тестов из 6 классов, в общей сложности 120 тестов между ними.Специальные тесты TestNG в изоляции
Проблема, с которой я сталкиваюсь, заключается в том, что некоторые тесты не могут выполняться при выполнении некоторых других тестов. Например, для испытаний A, B, C, D, E, F:
- а не может быть запущена с В или С
- б не может быть запущен с или с
- с не может быть запущен с а или б
- д не может быть запущен с F
- е можно запустить с чем-нибудь
- е не может работать с d
Это небольшой пример, б Надеюсь, это иллюстрирует суть. Я все еще хочу использовать как можно больше параллелизма, например, d и e могут работать одновременно. Я все еще учусь с TestNG, но я попытался следующие вещи:
Группировка тестов, которые не могут быть запущены вместе в одну группу - я не мог найти способ запустить TestNG в «параллельном =» групп ", например, для" parallel = "classes", где все тесты в группе выполняются в одном потоке. Помещение каждого теста, который не может выполняться вместе в одном классе, позволит работать с классами «parallel =», но будет означать, что тесты не будут организованы с помощью тестовых функций, как они есть в настоящее время.
Зависимости от испытаний вокруг тестов - Я считал, что каждый тест зависит друг от друга (возможно, с группами?), Образуя цепочку, такую как a-> b-> c. Проблема в том, что они всегда будут работать в этом порядке, что может скрыть проблемы. Еще одна проблема заключается в том, что проверка работоспособности становится проблемой, так как вы должны обеспечить, чтобы цепь была единственной и не сломалась!
Создание метода перехватчика, которая сортирует список по группе - Я не совсем уверен в этом, но я не думаю, что это будет препятствовать имея тест уже запущен в то время как другой несовместимого тест выбран в качестве «следующего бежать'.
Я видел TestNG & Selenium: Separate tests into "groups", run ordered inside each group, который, кажется, пытается достичь той же цели, но по разным причинам, поэтому решение, достигнутое там, не подходит, поскольку это не проблема зависимости, а проблема изоляции.
Есть ли что-то, что мне поможет?
Большое спасибо,
Phil
Можете ли вы дать более конкретный пример этих тестов? Вместо теста A не может быть запущено с B или C, о чем * фактический * тест вы говорите? – Arran
Извинения, тесты, которые я назвал a-> f, - это тесты, которые я написал, каждый из которых проверяет функцию нашего приложения. Тестируемое приложение контролирует физические ресурсы. Каждый тест указывает физический ресурс для использования и запрашивает ресурс для выполнения определенной функции. В некоторых тестах используется один и тот же ресурс, и те, которые не могут выполняться вместе. Это помогает? – Obiphil