[解決済み] Androidのテストランナーで "Empty test suite "と表示されるのはなぜですか?
質問
IntelliJ/Android が "Empty test suite" を報告する理由を突き止めようと、ここで壁に頭を打ち付けています。私は2つのIntelliJモジュール(Eclipseの"Projects")で小さなプロジェクトを持っています。ユニットテストモジュールは独自のAndroidManifest.xmlを持っており、私はそれを一番下に貼り付けました。私は
ActivityUnitTestCase
に依存することになるため、テストは
Context
-オブジェクトに依存するからです。
メインモジュールのパッケージ名は
nilzor.myapp
. test モジュールのパッケージ名は
nilzor.myapp.tests
なぜテストランナーは
testBlah()
-メソッドをテストとして検出しないのでしょうか?
<?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用であるにもかかわらず。私はテストランナーが私のテストを見つけ、実行することを得ることができません。私は何を間違えているのでしょうか?
まだよくわからないと感じる質問がいくつかあります。
- ユニット テスト メソッドの上にアノテーションが必要ですか。
- メソッドの前に "test" を付ける必要がありますか、またはそれは JUnit テストのためだけですか?
-
のサブパッケージでテストを行うことはできますか?
nilzor.myapp.tests
?
しかし、この投稿の主な疑問は なぜテストランナーは私のテストを検出しないのでしょうか? ?
どのように解決するのですか?
テストクラスにデフォルトのコンストラクタを用意する必要があるなど。
package nilzor.myapp.tests;
public class NilzorSomeTest extends ActivityUnitTestCase<ActivityYouWantToTest>{
public NilzorSomeTest(){
super(ActivityYouWantToTest.class);
}
@SmallTest
public void testBlah(){
assertEquals(1,1);
}
}
他の質問について
-
いいえ、私のテストはまだ注釈なしで実行されていますが、注釈を持つことは良い習慣だと思います。実行するテストのサイズを指定することができます。参照 Androidにおける@SmallTest、@MediumTest、@LargeTestのアノテーションの目的は何ですか? を参照してください。
-
はい、"test" の接頭辞が必要です。InteliJでは、"test"のプレフィックスがない場合、"method never used"の警告を出し、テスト実行時にそのメソッドをスキップします。
-
はい、私は私のテストをサブパッケージに整理し、それはうまくいっているようです。
関連
-
[解決済み] Androidのgravityとlayout_gravityの違いは何ですか?
-
[解決済み] Androidのソフトキーボードをプログラムで閉じる/隠すにはどうすればよいですか?
-
[解決済み] IntelliJのインスペクションで「シンボルを解決できない」と表示されたが、コードはコンパイルされる
-
[解決済み] Android Webview - キャッシュを完全に削除する
-
[解決済み] Androidでマイナスマージンを使用するのは悪いことですか?
-
[解決済み] バイト配列の画像ファイルをビットマップに変換するには?
-
[解決済み] EditTextの右側のDrawableにonClickListenerを設定する [重複] [重複
-
[解決済み] グリッドビューの高さが削減される
-
[解決済み] Android Lintが翻訳されていない文字列を訴えないようにする。
-
[解決済み] WhatsAppでメッセージを送信する
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] クラスが見つかりません。IntelliJの空のテストスイート
-
[解決済み] SDカードからファイルを削除する方法を教えてください。
-
[解決済み] Android Webview - キャッシュを完全に削除する
-
[解決済み] 深くネストされたスタックから離れるとき、Fragmentのバックスタックをクリーンアップする方法はこれで良いのでしょうか?
-
[解決済み] Android ConstraintLayout - あるビューを別のビューの上に配置する
-
[解決済み] Android Studio - あいまいなメソッド呼び出し getClass()
-
[解決済み] TabLayoutに対応したandroidデザインでタブテキストのフォントを変更する
-
[解決済み] Androidのadb logcatでTAG名で特定のメッセージを除外する方法は?
-
[解決済み] 非推奨のandroid.support.v4.app.ActionBarDrawerToggleの置き換え方法
-
[解決済み] アダプタからActivityメソッドを呼び出す