Существует инструмент командной строки как часть продукта, который я поддерживаю, и у меня есть ситуация, которая очень похожа на то, что вы описываете. То, что я сделал, - это использовал систему модульного тестирования и закодировал каждую комбинацию аргументов в качестве метода тестирования
Программа реализована в c # / .NET, поэтому я использую среду тестирования Microsoft, встроенную в Visual Studio, но этот подход будет работать с любой структурой модульного тестирования.
Каждый тест вызывает служебную функцию, которая запускает процесс и отправляет входные данные и связывает выходные данные. Затем каждый тест отвечает за проверку того, что выходные данные CLI соответствуют ожидаемым. В некоторых случаях есть семейство тестовых случаев, которые могут быть выполнены одним методом тестирования, в котором есть цикл for. Логика должна запускать CLI и проверять вывод для каждой итерации.
Набор тестов, который у меня есть, не охватывает каждую перестановку аргументов, но охватывает 80% случаев, и я могу добавлять новые тесты, если есть какие-либо дефекты.