4

私はAndroidアプリケーションの構築、実行、インストルメンテーションテストにMavenを使用しています。Androidテストフレームワークには3つの異なるテストスコープ@SmallTest@ MediumTest、 @ LargeTestがあり、android-maven-pluginにはtestTestSizeまたはtest/testSizeパラメーターを介してテストスコープを選択する機能があります。このパラメーターは、関連するスコープの1つでsmall|medium|largeあり、関連するスコープからテストを実行できます。

しかし、小規模または中規模だけでなく、小規模および中規模のテストを同時に実行したい場合はどうすればよいですか?この問題の解決策はありますか?

4

2 に答える 2

3

InstrumentationTestRunner APIドキュメントによると、これがAndroid SDKの設計方法であり、現時点で機能するはずです。

すべての小さなテストの実行: adb shell am Instrument -w -e size small com.android.foo / android.test.InstrumentationTestRunner

すべてのミディアムテストの実行: adb shell am Instrument -w -e size Medium com.android.foo / android.test.InstrumentationTestRunner

すべての大規模なテストの実行: adb shell am Instrument -w -e size large com.android.foo / android.test.InstrumentationTestRunner

プレーンなadbコマンドを使用してテストを実行する場合でも、2つのプロセスを使用して、小規模および中規模のテストを別々に次々に実行する必要があります。Android Mavenプラグインはadbコマンドの単なる別のラッパーであるため、android-maven-plugin構成AFAIKを介してデフォルトの動作を変更する方法はありません。


InstrumentationTestRunner APIのドキュメントを注意深く読むと、興味深いコマンドの使用法があることに気付くでしょう。

テストの実行をフィルターして、指定されたアノテーションを使用したテストを実行します: adb shell am Instrument -w -e Annotation com.android.foo.MyAnnotation com.android.foo / android.test.InstrumentationTestRunner

他のオプションと一緒に使用した場合、結果のテスト実行には2つのオプションの和集合が含まれます。たとえば、「-e size large -e annotation com.android.foo.MyAnnotation」は、LargeTestアノテーションと「com.android.foo.MyAnnotation」アノテーションの両方を使用したテストのみを実行します。

アノテーション構成は実験的なAPIとして追加され(@hideとマークされています。詳細については、このバージョン履歴を確認してください)、aminstrumentオプションリストには記載されていません。理論的には、独自のアノテーションクラスを作成し(例としてSmallTest.javaを参照)、すべての@MediumTestを@CustomizedTestと一緒にマークし、-e sizeと-eアノテーションの両方を使用して、目的を達成できます。2つのアノテーションから同時にユニオンテストを実行します。オールインワンコマンド。

残念ながら、android-maven-pluginはアノテーション構成をサポートしていません。プラグインのドキュメント最新のソースコードを参照してください。考えられる回避策は、exec-maven-pluginを使用してplainadb shell am instrumentコマンドを実行することです。

これが理にかなっていることを願っています。

于 2012-07-10T11:01:16.437 に答える
0

maven-androidのテストサイズを使用するために、pom.xmlに変数を作成しました。

...
<properties>
  <config.build.testSize>medium</config.build.testSize>
</properties>
...

ビルドでは、次のようになります。

<build>  
 <pluginManagement>
  <plugins>
   <plugin>
    <groupId>com.jayway.maven.plugins.android.generation2</groupId>
    <artifactId>android-maven-plugin</artifactId>
    ...
    <configuration>
     <test>
      <testSize>${config.build.testSize}</testSize>
     </test>
    </configuration>
    ...
   </plugin>
  </plugins>
 </pluginManagement> 
</build>

android.test.testSizeパラメーターをmavenに指定することでもこれに到達できると思います(mvn install -Dandroid.test.testSize = mediumなど)

私が間違っていて、まだドキュメントで見つからなかった場合は、このMaven変数を修正してください。BR、M。

于 2012-07-10T13:52:34.507 に答える