unitarias unit test studio pruebas how app unit-testing android-ndk

unit testing - test - Pruebas unitarias en Android NDK



test ui android (1)

¿Cómo se ejecutan las pruebas unitarias en el código nativo de Android (C / C ++ nativo, no Java)? Hasta ahora solo he encontrado one pregunta similar, y la respuesta dice usar junit con JNI, lo que no quiero hacer (agregar llamadas JNI parece innecesariamente complicado para la prueba unitaria y no es realmente una prueba unitaria del código nativo de todas formas).

¿CppUnit (también sugerido allí) realmente funciona en Android? Tenga en cuenta que quiero que las pruebas se ejecuten de forma nativa en el dispositivo, no en el entorno de desarrollo de host. This parece un puerto de Android, ¿vale la pena verlo?

Un marco de prueba oficial de Google como googletest sería ideal, pero eso no parece funcionar con el NDK.


Utilizo Googletest a través de NDK. Utilizo $ (llame a import-module para traer el .so principal y luego tengo un solo archivo en el ejecutable que parece

int main(int argc, char *argv[]) { #if RUN_GTEST INIT_GTESTS(&argc,(char**)argv); RUN_ALL_GTESTS(); #endif }

Y luego construyo eso con BUILD_EXECUTABLE, implementarlo como:

find libs/ -type f -print -exec adb push {} /data/local/tmp /;

y ejecutarlo como

adb shell LD_LIBRARY_PATH=/data/local/tmp:/vendor/lib:/system/lib /data/local/tmp/gtest

Por lo tanto, no prueba el ciclo de vida de la aplicación, sino que prueba todas las pruebas unitarias.

Si tuviera que probar algo con una interfaz de usuario, podría hacer algo similar, pero convertir lo que ahora es "principal" en una función nativa e invocarlo cuando se carga la actividad.