5

UI オートメーションに関する問題の解決策を見つけるために、私はよくグーグルで検索していました。問題を要約した素敵な投稿を見つけました:

コマンドラインからテストを実行する方法はありません。(...)

状態を設定またはリセットする方法はありません。(...)

前の問題の一部は、UI オートメーションに個別のテストの概念がないことです。(...)

テスト実行の結果をプログラムで取得する方法はありません。(...)

ソース: https://content.pivotal.io/blog/iphone-ui-automation-tests-a-decent-start

問題番号 3はjasmineで解決できます( https://github.com/pivotal/jasmine-iphone )

他の問題はどうですか?その投稿 (2010 年 7 月 20 日) 以降に導入された改善点はありますか?

もう 1 つの問題: 特定の UI 要素を選択する既存の方法は、アプリケーションのソース コードにアクセシビリティ ラベルを追加することだけだというのは本当ですか?

4

4 に答える 4

5

この投稿以降、UI オートメーションは改善されましたが、私が目にした改善はすべて、新機能ではなく信頼性に関連したものでした。

彼は、UI オートメーションをより本格的なテストに使用する際の問題点について、いくつかの良い点を挙げています。後でコメントを読むと、これらの問題に対処する方法についてかなりの量の議論が行われています。

コマンド ラインからテストを実行するトピックについては、この質問で説明しています。Apple Developer Forumsで潜在的な解決策が示唆されています。私はこれを自分で試したことはありません。

実行後にテストの結果をエクスポートして、オフラインで解析できます。

最後に、最後の質問ですが、アクセシビリティ ラベルを割り当てなくても UI 要素に対処できます。多くの一般的な UIKit コントロールはデフォルトでアクセスできるため、名前でそれらをターゲットにすることができます。それ以外の場合は、次の例のように、表示階層内の位置からビューを選択できます。

var tableView = mainWindow.tableViews()[0];

いつものように、UI オートメーション ツールに重要な何かが欠けている場合は、拡張要求を提出して、SDK の次のバージョンに反映されるようにしてください。

于 2011-01-24T23:37:36.900 に答える
3

IMATを試しましたか?https://code.intuit.com/sf/sfmain/do/viewProject/projects.ginsu . これは、Apple が提供するネイティブの JavaScript SDK を使用し、コマンド ラインまたは Instruments を介してトリガーできます。

各質問への回答:

コマンドラインからテストを実行する方法はありません。(...)

Apple がこれを提供するようになりました。IMAT を使用すると、コマンド ラインまたは Instruments を介してテストを開始できます。Apple がコマンド ライン インターフェイスを提供する前は、AppleScript を使用して Instruments を起動し、テストを開始していました。

状態を設定またはリセットする方法はありません。(...)

この状態図を確認してください: https://code.intuit.com/sf/wiki/do/viewPage/projects.ginsu/wiki/RecoveringFromTestFailures

前の問題の一部は、UI オートメーションに個別のテストの概念がないことです。(...)

同意した。IMAT と tuneup.js (https://github.com/alexvollmer/tuneup_js#readme) の両方でこれが可能です。

テスト実行の結果をプログラムで取得する方法はありません。(...)

末尾の plist ファイルの読み取りは簡単ではありません。IMAT は、テスト実行後に plist ファイルを読み取って jUnit のようなレポートを提供し、これは私の CI ツール (Teamcity、Jenkins、CruiseControl) によって取得されます。

于 2012-08-01T17:50:41.883 に答える
0

http://lemonjar.com/blog/?p=69を参照してください 。コマンド ラインから UIA を実行する方法について説明しています。

于 2011-08-08T23:48:54.737 に答える
0

要素の階層を確認してみてください。テーブルは UIScrollView の上に配置できます。

var tableV = mainWindowTarget.scrollViews()[0].tableViews()[0].scrollToElementWithName("Name of element inside the cell");

上記のスクリプトは、要素が12番目のセルにある場合でも機能します(ただし、名前はセル内で言及されているものとまったく同じである必要があります)

于 2011-07-14T09:11:44.427 に答える