MFC Resource ID и Squish - PullRequest
       25

MFC Resource ID и Squish

0 голосов
/ 04 июля 2019

Я пытаюсь автоматизировать некоторое тестирование графического интерфейса с помощью Squish и продолжаю получать проблемы с идентификаторами ресурсов MFC в Squish.

Я создаю статическую метку, например:

CStatic m_Status;
m_Status.Create("", WS_CHILD | WS_VISIBLE | SS_CENTERIMAGE | SS_LEFT, 
                mCfg->rectStatus(), this, 42);
m_Status.SetWindowText("42 is the answer");

Когда яшпионить за этим ярлыком со Squish, все, что я получаю, это:

{"container": o_Pane, "text": "42 is the answer", "type": "Label"}

однако, нет идентификатора.Поскольку текст меняется, соответствующий элемент, основанный только на тексте, не является оптимальным.

В той же программе другие метки создаются с помощью мастера диспетчера ресурсов.Для этих меток Squish может получить идентификатор ресурса и установить правильное свойство nativeObject.

Есть ли способ сделать объекты CStatic, созданные в исходном коде, также правильно видимыми для Squish с помощью nativeObjectсобственность, если возможно?

1 Ответ

0 голосов
/ 05 июля 2019

Шпионаж может использоваться для проверки свойств объекта . Как только вы узнаете, какие свойства видит Squish, вы можете использовать свойства и их значения в реальных именах объектов Squish для идентификации нужного объекта.

Однако, поскольку поддержка Squish в MFC не компилируется, он, как правило, не имеет доступа к таким идентификаторам, поскольку получает всю свою информацию об элементах управления MFC через Window Messaging.

Возможно, эти идентификаторы доступны через UI Automation. Сверьтесь с Проверьте , если это так. И если это так, попробуйте определить объект с помощью поддержки автоматизации пользовательского интерфейса Squish. Для этого измените приоритет в SQUISH_DIR \ lib \ extensions \ win \ uiautomation.ext, чтобы он был выше, чем приоритет в SQUISH_DIR \ lib \ extensions \ win \ mfc.ext, используйте новый набор тестов (для проверки и тестирования), запустите AUT из Squish, выберите объект и посмотрите, видите ли вы другие свойства объекта, и если свойства nativeObject не равны NULL (значение пустое / ноль означает, что MFC поддерживает предоставление доступа к объекту).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...