0

ツールの GUI をテストするために squish-4.2.2 を使用し、それらをカバーするために purecov.i386_linux2.7.3 を使用します。私たちのツールは QT の qt-4.7.4_qsci バージョンに基づいています。ツールを Purecov モードでビルドした後、テストを実行すると、テストに「popsup メニュー」を使用した操作が含まれていると失敗します。Purecov は結果の *.pcv ファイルを生成できません。また、ツールは Squish なしで実行しても失敗しないことに注意してください。ただし、「Popsup メニュー」は 30 ~ 60 秒後に開きます (通常モードでは 1 ~ 2 秒かかります)。したがって、2 つの問題があります。2. テストが失敗した場合、Purecov は *.pcv ファイルを生成しません。

これらの問題を解決するためにあなたのサイトで興味深いものを見つけようとしましたが、私の問題に関連するものは何も見つかりませんでした. 私の意見では、「メニュー」項目を開こうとすると、GUI がそのロジック部分よりも速く実行され、「メニュー」項目を開いた後、Squish は操作が完了したと見なしてツールを強制終了するため、Squish は失敗しました。

これらの問題を解決するためのテストまたはツールで何ができるか教えてください。ありがとう。

4

1 に答える 1

0

アプリからメニューをクリックすると、過去に同様の問題がありました。これがあなたにも役立つことを願っています!

:「ファイル」メニューを開き、その後にサブメニュー(ポップアップ)「新規」を開きたいと思いました。Squish の記録モードにすると、Squish は Python で次のコードを記録します。

activateItem(waitForObjectItem(":MainWindowForm.m_poMainMenu_QMenuBar", "File"))
activateItem(waitForObjectItem(":MainWindowForm.menuFile_QMenu", "New..."))

正直なところ、私はその理由を理解できませんでした:)。しかし、私は彼らのサイトで、これが可能な解決策であることを発見しました. そこで、上記のコードのシンボリック名を置き換え、実名プロパティの後にオブジェクトを呼び出す関数を作成しました。

def callMenu(menu_name, submenu_name):

    activateItem(waitForObjectItem("{type='QMenuBar' visible='true'}", menu_name))
    activateItem(waitForObjectItem("{type='QMenu' title='%s'}" % menu_name, submenu_name))

この変更を行った後、テストはスムーズに実行され、問題はなくなりました (少なくともメニュー側から)。

于 2016-03-11T11:07:32.690 に答える