2016-05-23 8 views
10

自動スクリーンショットを取得するために、AndroidアプリケーションにUIテストを書きたいと思います。私のAndroid UIテストのIDはありません

私のアプリケーションは、私のコンポーネントのリソースIDを知る必要で、私のテストを記述するためにReact-Native.

と書かれていますが、このスクリーンショットで見ることができるように私は、UIを持つ任意のリソースIDを見ることができませんこのReact-NativeサンプルアプリケーションのAutomator Viewer

Look this picture.

私はいくつかのテストを書くことができますので、または私のコンポーネントを選択する別の方法がある場合は私のコンポーネントにいくつかのIDを与える方法があるかどうかを知りたいです。

注:私はエスプレッソテストを作成しようとしています。

答えて

0

はいあります。 testID小道具は<View />小道具を実装するコンポーネントにdocumented hereとして渡すことができます。

テストID、エンド・ツー・エンドのテストでは、このビューを検索するために使用される文字列

また、非常に参考になるように、リアクタントネイティブのUITestingについても参照してください。blogpostそれはiOSテストに関するものですが、javascriptの部分はAndroidで同じになるでしょう。

0

まず、Androidオブジェクトの各UIコンポーネントのIDは、レイアウトXMLとしてリソース(res)フォルダに定義されている必要があります(正しいタグで定義していることを確認する必要があります)アンドロイドの手順に従ってください。

1. Launch Android Studio, Click on "Android Device Monitor" icon next to "SDK Manager" 

2. Connect your device and launch the application 

3. Select your device name from the list of devices on the left panel 

4. Click on Dump "View Hierarchy for UI Automate" 

5. Now you can hoover over any view on thde device dump and can see Resource-d in the node details in the right column. 

注:また、スクリーンショット

+1

とwebdriverをのようなものを使って検索することができXmlレイアウトを使用しない、反応ネイティブで書かれたアプリまで。 – ArthurDenture

0

1を取ることができます)あなたは、レイアウトに移動し、これらのコンポーネントにIDを追加して取ることができます最初のプロジェクトであれば最初のものuiautomatorビューアを使用したスクリーンショットあなたのリソースIDは

です0

2)オプション1が可能ではない(それは起こりそうもない)場合でも、スクリーンショットからテストすることができます。私は1つのedittextボックスしか見ることができませんので、uiauatomatorを使用すると、クラスに基づいてテストできます。ここでは以下のコードである:私はそののGetClass()かを確認していない//

private static UiDevice mDevice; 


func(){ 

mDevice = UiDevice.getInstance(getInstrumentation()); 


UiObject xyz=new UiObject(new UiSelector().**getClass**(android.widget.EditText)); 


xyz.click(); 


xyz.setText("abcdef"); 
} 

getClassNameメソッド()チェックオプション

// xyz.click()がuiautoamtorのように必要である両方それが選択されるまでとしない限り、あなたは

6

testIDが唯一のiOS上で動作し、中にリソースIDにマッピングされていないテキストボックスに

右のテキストにできなくなりますAndroid。

コンポーネントにaccessibilityLabelを指定できます。uiautomatorviewerでは、それはクロスプラットフォームであるためにはcontent-desc

として表示、あなたは両方を指定する必要があります

<Text style={styles.welcome} accessibilityLabel="MyId" testID="MyId"> 
    Welcome! 
</Text> 

をあなたはそれがこれが適用されないtilde selectorbrowser.waitForExist("~MyId")

+0

これはどのテストフレームワークですか?私はAppiumだけでドライバを見つけることができないようです。 – liminal18

+0

これはAppiumを駆動する[http://webdriver.io](http://webdriver.io)を使用しています – eleventy

関連する問題