2011-11-26 7 views
10

私はRobotiumライブラリを使用するScalaで書かれた小さなAndroidテストスイートを自分のアプリケーション用に開発しました。このスイートは、すべての意図と目的のための標準のAndroid JUnitテストプロジェクトであり、Eclipseから起動すると正常に動作します。sbtでAndroidテストを実行するにはどうすればよいですか?

私はすでに、sbt android-pluginでメインのAndroidアプリケーションを構築して実行しています。主なアプリケーションは[ProjectDir]/src/mainにあります。また、[ProjectDir]/tests/src/mainディレクトリにあるbuild my Android test applicationも正常にできました。エミュレータをチェックしたところ、アンドロイドプラグインのtests/android:install-emulatorコマンドでテストアプリケーションが正しくインストールされているようです。私はsbt tests/android:test-emulatorを介してテストプロジェクトを実行しようとすると、しかし、私が取得:

私はプロジェクトはJUnitテストが含まれていることを認識し、それらを実行する際に、SBTのAndroidプラグインを取得できますか
... 
Test results for InstrumentationTestRunner= 
Time: 0.001 

OK (0 tests) 

答えて

1

ここで使用されている命名規則は、通常のJUnitと同じです。したがって、xxx​​Test.classというテストに名前を付ける必要があります。また、TestCase(AndroidTestCase、InstrumentationTestCaseなど)を拡張する必要があります。それはとても命名規則が適用されない場合がありますコマンドにクラス名を追加します

adb shell am instrument -w -e class com.android.foo.FooTest,com.android.foo.TooTest com.android.foo/android.test.InstrumentationTestRunner 

:繰り返しに

は、日食は次のようになりますコマンドを実行します。

あなたはSBTから実行した場合、それが実行されますsomeClassNameTestで終了したアプリケーションcom.android.fooのパッケージ名の下にあるすべてのクラスを検索します

adb shell am instrument -w com.android.foo/android.test.InstrumentationTestRunner 

+0

それはあなたのために働くと言っていますか?これらは、EclipseのJunit Androidテストランナーの中で変わらずに動作するテストです。私はクラスの命名規則に気づいていませんが、メソッド命名規則を認識しています。メソッド名の前に "test"という単語を付ける必要があります。私のテストは、 'ActivityInstrumentationTestCase2'を拡張したカスタムクラス' TestFixture'を拡張しています。 –

+0

FixtureTestを試しましたか? – charroch

関連する問題