В TestNG вы можете определить наборы через файл конфигурации (testng.xml), который должен соответствовать вашим потребностям. Вы можете структурировать его так, чтобы иметь тестовую группу для каждого модуля. Отказ в тестовой группе делает весь тест неудачным. Но я думаю, что вы также можете сделать это в JUnit, с которым я не слишком знаком.
Что хорошо в TestNG, так это то, что вы можете определять зависимости. Это обеспечит определенный логический порядок выполнения тестов и пропустит тесты, которые зависят от неудачных тестов, вместо того, чтобы позволить им также проваливаться. Делает анализ намного проще и тесты заканчиваются раньше, потому что все те тесты, которые потенциально обречены на неудачу, будут оставлены в стороне.
Но, как я уже говорил ранее, я думаю, что вы можете сделать это и в JUnit. Это больше вопрос вкуса. И если вы решите иначе, переходить из JUnit в TestNG или наоборот не так уж и сложно.