2017-01-20 6 views
11

मैं एक जटिल सी ++ लाइब्रेरी पर काम कर रहा हूं जिसे मैं एंड्रॉइड एनडीके के लिए Googletest का उपयोग करके ठीक से परीक्षण करने की योजना बना रहा हूं।सी ++ कोड का परीक्षण करने के लिए googletest का उपयोग कैसे करें जो एंड्रॉइड पर जावा में कॉल करता है?

अब तक मैं गूगल परीक्षण उदाहरण का पालन करें और इस तरह से परियोजना की संरचना:

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" 
: एक स्क्रिप्ट फ़ाइल का उपयोग

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) 

मैं निर्माण और परीक्षण फोन:

Android.mk

यह किसी भी शुद्ध सी ++ कोड के साथ ठीक काम करता है जिसमें कई संदर्भ नहीं हैं लेकिन मेरा बहुत सारे कोड वास्तव में जावा/जेनी कॉल पर निर्भर करता है। मैं एक पूर्ण एपीके फ़ाइल के साथ googletest कैसे चला सकता हूं जो सी ++ कोड के साथ नहीं बल्कि जावा और संसाधनों के साथ आता है? बस में निष्पादन का नाम टाइप करें:

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

यह आप किसी भी अन्य की तरह परीक्षण कार्यक्रम को लागू करने की अनुमति देता है:

उत्तर

2
अपने परीक्षण कार्यक्रम के अंदर

, आप एक मुख्य() फ़ंक्शन जो कुछ इस तरह दिखता होगा नर्क जैसा।

https://github.com/google/googletest

+0

लेकिन मैं एक apk साथ कैसे गठबंधन होता है कि: पर

अधिक जानकारी? – Luz

+0

आप जावा में कॉलबैक बना सकते हैं, फिर इसे डाउनलोड किए गए पैकेज को स्थापित करने के लिए जेएनआई से कॉल करें। – Shobhit

संबंधित मुद्दे

 संबंधित मुद्दे