Мы столкнулись с точно такой же проблемой сейчас (должны поддерживать 20 пользовательских версий нашего приложения).
Общее решение, к которому мы пришли:
1) абстрагирование взаимодействия пользовательского интерфейса от бизнес-логики (у нас есть пользовательская структура для UITestControls, которая десериализует их из файла XML)
2) для каждого клиента настраивайте логику взаимодействия с пользовательским интерфейсом по мере необходимости и делайте это точно так же, как это делают разработчики для настройки приложения
3) Итак, для каждой ветви приложения («разная среда») у нас одинаковая логика, но разный уровень пользовательского интерфейса
4) теперь мы можем предоставить нашим тестам файл нотации XML UI, предназначенный для использования в этой среде, и будем рады
Это решение сложное, требует сложного кода, но дает нам необходимую гибкость.
И, ну, мы не записываем наш тест, мы создаем его с нуля, так что код намного чище и более удобен в обслуживании.
Надеюсь, это поможет.
Я могу предоставить более подробную информацию, если вам нужно.