2017-01-20 16 views
11

Android NDK için googletest kullanarak düzgün bir şekilde test etmeyi planladığım oldukça karmaşık bir C++ kitaplığı üzerinde çalışıyorum.Android'de java'ya çağıran C++ kodunu test etmek için googletest nasıl kullanılır?

Şimdiye kadar google testi örneğini takip ve bunun gibi proje yapısı:

adb push libs/armeabi/libfoo.so //data/local/tmp/ 
adb push libs/armeabi/libgnustl_shared.so //data/local/tmp/ 
adb push libs/armeabi/foo_unittest //data/local/tmp/ 
adb shell chmod 775 //data/local/tmp/foo_unittest 
adb shell "LD_LIBRARY_PATH=//data/local/tmp //data/local/tmp/foo_unittest" 
: Bir komut dosyası kullanarak testi ben inşa

LOCAL_PATH := $(call my-dir) 

    include $(CLEAR_VARS) 
    LOCAL_MODULE := foo 
    LOCAL_SRC_FILES := foo.cpp 
    include $(BUILD_SHARED_LIBRARY) 

    include $(CLEAR_VARS) 
    LOCAL_MODULE := foo_unittest 
    LOCAL_SRC_FILES := foo_unittest.cpp 
    LOCAL_SHARED_LIBRARIES := foo 
    LOCAL_STATIC_LIBRARIES := googletest_main 
    include $(BUILD_EXECUTABLE) 

    $(call import-module,third_party/googletest) 

ve çağrı:

Android.mk

Bu, çok fazla referansı olmayan, ancak kodumun birçoğunun java/jni çağrılarına dayanan herhangi bir saf C++ koduyla iyi çalışır. Sadece C++ koduyla değil, aynı zamanda java ve kaynaklarla da gelen eksiksiz bir apk dosyası ile googletest'i nasıl çalıştırabilirim? Sadece yürütülebilir adını yazın:

int main(int argc, char **argv) { 
    ::testing::InitGoogleTest(&argc, argv); 
    return RUN_ALL_TESTS(); 
} 

Bu diğerleri gibi test programı çağırmak sağlar: Test programı içinde

cevap

2

, sen şuna benzer bir ana() işlevi olacak cehennem gibi.

https://github.com/google/googletest

+0

ama nasıl bir apk'de ile birleştiren olacaktır: on

diğer bilgiler? – Luz

+0

Java'da bir geri arama oluşturabilir, ardından indirilen paketi yüklemek için JNI'den arayabilirsiniz. – Shobhit

İlgili konular