Jenkins、Genymotion、calabash-android のテクノロジで構成されるテスト環境に取り組んでいます。ionic を使用して、単純な todo アプリを作成しました。実際、これはこのガイド ( http://ionicframework.com/docs/guide/installation.html ) の一部として見つかったものです。次に、このアプリをテストするために、calabash_android の簡単な機能とそれに付随する手順を作成しました。
機能ファイル:
Feature: Todo's & Projects
Scenario: I can create a new todo under a project
Given I wait for 5 seconds
When I press button with id "new__task"
Then I see field with id "#input__text"
Then I enter text "This is a test" into input with id "#input__text"
When I press button with id2 "create__task"
Then I see id "task__1"
Then I take a screenshot
Scenario: I can create a new project
Given I wait for 5 seconds
When I swipe left
Then I see button with id "#new__project"
手順:
require 'calabash-android/calabash_steps'
When(/^I press button with id "(.*?)"$/) do |buttonid|
query("CordovaWebView css:'#new__task'")
touch("CordovaWebView css:'#new__task'")
end
Then(/^I see field with id "(.*?)"$/) do |fieldid|
query("CordovaWebView css:'#input__text'")
end
Then(/^I enter text "(.*?)" into input with id "(.*?)"$/) do |text, fieldid|
query("CordovaWebView css:'#input__text'")
enter_text("CordovaWebView css:'#input__text'", "This is a test")
end
When(/^I press button with id2 "(.*?)"$/) do |buttonid|
query("CordovaWebView css:'#create__task'")
touch("CordovaWebView css:'#create__task'")
end
Then(/^I see id "(.*?)"$/) do |fieldid|
query("CordovaWebView css:'#task__1'")
end
Then(/^I see button with id "(.*?)"$/) do |buttonid|
query("CordovaWebView css:'#new__project'")
touch("CordovaWebView css:'#new__project'")
end
これを実行すると、成功します。すべてのステップに合格し、両方のシナリオに合格し、すべてが順調です。
次に、「ionic browser add crosswalk」を使用して横断歩道を追加すると、いくつかの問題が発生します。
「CordovaWebView」が存在しないため、私が書いたこれらの手順は機能しなくなります。crosswalk は独自のビューにすべてを埋め込むため、これを期待しています。
問題は、そのビューを照会できないことです。calabash-android コンソールで新しい crosswalk'd アプリを起動すると、"query(" ")" を実行できます。これは約 9 つの異なるビューを示しており、興味深いのは "XWalkCordovaView" です。ただし、ステップの「CordovaWebView」を「XWalkCordovaView」に置き換えても、ステップは失敗します。実際、次のように XWalkCordovaView にクエリを実行すると、 "query("XWalkCordovaView css:' '") は何も得られませんが、横断歩道以外のアプリで CordovaWebView を使用してこれを行うと、ページ上のすべての css 要素が取得されます (期待どおり)。
アプリを実際にテストすることはできません/できません/。しかし、最適化と x86 アーキテクチャでのテスト機能のためには横断歩道が必要です。
では...どうすれば CrosswalkCordova ビュー内の要素を正常にクエリして操作できるのでしょうか? 私は正しい場所を見ていますか?誰も知らないようです。私は何度もグーグル検索しましたが、一番上の結果は常に、クロスウォークが「ネイティブ」にサポートされているかどうかを尋ねる github ユーザーです (サポートされていません)。
どんな助けでも大歓迎です。