IntelliJ / Androidが「空のテストスイート」を報告している理由を理解しようとして、壁に頭をぶつけています。2つのIntelliJモジュールを含む小さなプロジェクト(Eclipseの「プロジェクト」)があります。ユニットテストモジュールには独自のAndroidManifest.xmlがあり、これを下部に貼り付けました。ActivityUnitTestCase
テストはContext
-objectに依存するため、私はを実行しようとしています。
メインモジュールのパッケージ名はnilzor.myapp
です。テストモジュールのパッケージ名はnilzor.myapp.tests
テストランナーがtestBlah()
-methodをテストとして検出しないのはなぜですか?
<?xml version="1.0" encoding="utf-8"?>
<!-- package name must be unique so suffix with "tests" so package loader doesn't ignore us -->
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="nilzor.myapp.tests"
android:versionCode="1"
android:versionName="1.0">
<!-- We add an application tag here just so that we can indicate that
this package needs to link against the android.test library,
which is needed when building test cases. -->
<application>
<uses-library android:name="android.test.runner"/>
</application>
<!--
This declares that this application uses the instrumentation test runner targeting
the package of nilzor.myapp. To run the tests use the command:
"adb shell am instrument -w nilzor.myapp.tests/android.test.InstrumentationTestRunner"
-->
<instrumentation android:name="android.test.InstrumentationTestRunner"
android:targetPackage="nilzor.myapp"
android:label="Tests for nilzor.myapp"/>
</manifest>
そして、これが私のテストクラスです:;
package nilzor.myapp.tests;
public class NilzorSomeTest<T extends Activity> extends ActivityUnitTestCase<T>{
public NilzorSomeTest(Class<T> activityClass){
super(activityClass);
}
@SmallTest
public void testBlah(){
assertEquals(1,1);
}
}
私は、Eclipse向けであるにもかかわらず、テストの基礎、アクティビティテストドキュメントを読み、このHello worldテストブログを試してみました。テストランナーにテストを見つけて実行させることができません。何が悪いのですか?
私がまだ確信が持てない質問のいくつかは次のとおりです。
- 単体テストメソッドの上にアノテーションが必要ですか?
- メソッドの前に「test」を付ける必要がありますか、それともJUnitテストだけですか?
- のサブパッケージでテストできます
nilzor.myapp.tests
か?
しかし、この投稿の主な質問は、なぜテストランナーが私のテストを検出しないのかということです。
@Test
マーカーをテストの上に置くことを忘れないでください。
cmd+shift+t
場合、現在編集しているクラスと一致する正しいパッケージの場所にテストクラスを自動的に作成するショートカットをお勧めします。