I test dell'unità non stanno funzionando con il metodo d in android.util.Log non è stato simulato ma solo quando eseguo testDebug. Se eseguire testRealizza tutto va bene e passa correttamente. Qualcuno sa perché questo sta accadendo? La stessa cosa accade quando si esegue gradle da console e Android studio.Test dell'unità Android non riuscito per il tipo di build Debug
risposta
Ecco una spiegazione di come ho risolto questo per riferimento futuro. Il problema con i test che funzionano nel debug ma non nel rilascio era dovuto al fatto che Log.d (e gli amici del framework Android) non erano stati correttamente derisi. Il motivo per cui funziona quando viene generato come rilascio è che la nostra registrazione era condizionata in base a questa proprietà dalla configurazione di configurazione. Fondamentalmente abbiamo if (BuildConfig.type! = "Release") Log.d (...) e dal momento che il compilatore rimuove questo blocco a causa del valore finale non viene richiamato durante il test di rilascio. Per simulare il metodo statico Log.d Ho usato PowerMock. Fare il mocking è stato facile, ma impostare Power Mock è davvero una seccatura, quindi probabilmente ci potrebbero essere dei modi migliori per farlo.
Acquista il collegamento "Method ... not mocked" nel sito del progetto Android Studio. Dice:
Il file android.jar che viene utilizzato per eseguire test di unità non contiene alcun codice vero e proprio - che è fornito da l'immagine del sistema Android su dispositivi reali. Invece, tutti i metodi generano eccezioni (per impostazione predefinita). Questo per assicurarsi che i test delle tue unità testino il tuo codice e non dipendano da alcun particolare comportamento della piattaforma Android (che non hai esplicitamente preso in giro, ad esempio usando Mockito). Se ciò risultasse problematico, è possibile aggiungere il frammento qui sotto al tuo build.gradle per cambiare questo comportamento:
build.gradle
android {
// ...
testOptions {
unitTests.returnDefaultValues = true
}
}
Siamo consapevoli che il comportamento predefinito è problematico quando si utilizza classi come log o textutils e volontà valutare possibili soluzioni nelle versioni future.
Ho appena usato quanto sopra per eliminare l'eccezione per ora.
- 1. Build Android non riuscito dopo l'aggiunta di Crosswalk a Ionic
- 2. Build Android con jmDNS non riuscito
- 3. XCTest - "Test non riuscito"
- 4. Come si esegue il debug di un test di carico non riuscito in gdb?
- 5. resConfigs per tipo di build
- 6. Analizzatore APK per Android Studio per build di debug
- 7. Test di Django non riuscito
- 8. Build di debug di rilascio per l'applicazione Android
- 9. Rilascio ant di debug e formica non riuscito
- 10. Override android: attributo vmSafeMode per build di debug
- 11. Android build tools 1.1.0, cartella test unità?
- 12. Rapporto di installazione non riuscito per Android
- 13. riprova non riuscito test moka
- 14. Utilizzo di APK Splits per versione ma non Debug tipo di build
- 15. Usa versioneCodice diversa per Debug/Release build gradle android
- 16. Come specificare la posizione del keystore di debug per le build di debug della form Android?
- 17. Android takePicture non riuscito
- 18. Contrassegna come non riuscito per troppo tempo JUnit test
- 19. Registrazione Esecuzione test selenio con Expression Encoder 4 SDK non riuscito sul server di build
- 20. Crea Android jenkins build fallito se i test falliscono
- 21. È possibile accedere alla modalità di debug per Android quando si esegue il test di junit?
- 22. Scrittura dello script Gradle per eseguire test case unit per il progetto Test di Eclipse Android
- 23. Test in corso non riuscito: negazione dell'autorizzazione: strumentazione iniziale ComponentInfo
- 24. MVC 5 build non riuscito su Visual Studio Team Services
- 25. Perché il test dell'unità JSONObject non è riuscito?
- 26. Migliori pratiche e strumenti per il debug delle differenze tra le build di debug e release?
- 27. Android non è riuscito a rinominare il file AAR nella build
- 28. Crea test apk Android usando il sistema gradle build
- 29. Valori stringa separati per Android per build di debug e release
- 30. Suggerimenti per il debug di Android