testDebugを実行したときにのみandroid.util.Logがmockedされていないので、ユニットのテストがメソッドdで失敗しています。 testReleaseを実行している場合はすべて正常であり、正しく通過します。 これはなぜ起こっているのですか? コンソールとAndroidスタジオからgradleを実行するときと同じことが起こります。Androidユニットのテストでデバッグに失敗するビルドタイプ
答えて
ここでは、将来の参考のためにこれをどのように解決したか説明します。 リリースではなくデバッグで動作するテストの問題は、Log.d(およびアンドロイドフレームワークのフレンド)が正しく嘲笑されなかったためです。 リリースとしてビルドされたときに動作する理由は、ビルド設定のこのプロパティに基づいてログが条件付きだったためです。基本的にif(BuildConfig.type!= "Release")Log.d(...)があり、コンパイラは最終値のためにこのブロックを削除するため、リリースをテストするときには呼び出されません。 静的メソッドLog.dをモックするにはPowerMockを使用しました。 Mockingは簡単でしたが、Power Mockを設定することは本当に面倒ですので、おそらくそれを行うより良い方法があるかもしれません。
チェックアウト"Method ... not mocked" Android Studioプロジェクトサイトのリンク。 それは言う:
ユニットテストを実行するために使用されるandroid.jarファイルは、任意の実際のコードが含まれていません - 実際のデバイスでAndroidシステムイメージで提供されています。代わりに、すべてのメソッドは例外をスローします(デフォルトで)。これはユニットテストがコードをテストするだけで、Androidプラットフォームの特定の動作(Mockitoなどを使って明示的に嘲笑していない)には依存しないことを確認するためです。それが問題のあることが判明した場合、あなたはこの動作を変更するためにあなたのbuild.gradleするには、以下のスニペットを追加することができます。
build.gradle
android {
// ...
testOptions {
unitTests.returnDefaultValues = true
}
}
を私たちは、ログインまたはTextutilsなどと意志のようなクラスを使用する場合、デフォルトの動作に問題があることを知っています将来のリリースで可能なソリューションを評価してください。
ここでは例外を取り除くために使用しました。
- 1. テストが失敗した場合、Android jenkinsビルドに失敗する
- 2. SpringテストDBユニット:アプリケーション・コンテキストのロードに失敗しました
- 3. MVC3ユニットのテストに失敗しました。System.Security.VerificationException
- 4. Djangoで失敗したテストをデバッグするには?
- 5. JSONレスポンスアサートがPHPユニットに失敗する
- 6. New to Java - リターン・ユニット・テストに失敗しました
- 7. JMockitテストに失敗する
- 8. OSXのQtCreatorでデバッグが失敗する
- 9. インターフェイスでのnilテストに失敗する
- 10. Rubyテスト:ユニット、テストスイート内の各テストケースの失敗/合格ステータスを知る方法?
- 11. ビルドタイプがjniデバッグ可能でないエラー
- 12. IEDriverServerでランダムにテストが失敗する
- 13. Reactアプリケーションでの失敗テスト
- 14. DTCテストが失敗する
- 15. デバッグ「xcodeで起動に失敗」
- 16. TeamCityでOneTimeSetup失敗テストが失敗する
- 17. Teamcityでのみテストが失敗する
- 18. Gitlabで失敗したテスト
- 19. アサーションのデバッグに失敗しました。
- 20. Iron PythonとVS2010のデバッグに失敗
- 21. エリクサー:テスト失敗メッセージ
- 22. MUnitテストでMavenビルドが失敗する
- 23. 剣道グリッドがテストで失敗する
- 24. テストでPYTEST-HTMLレポートが失敗する
- 25. Ember AppテストがPhantomJSで失敗する
- 26. Gitlab CIでJestjsテストが失敗する
- 27. MSテストでコレクションが失敗する
- 28. Rspecテストがネームスペースで失敗する
- 29. ランダムにBehatテストが失敗する
- 30. ノーズが遅いテストに失敗する