gpt4 book ai didi

java - 如何使用 googletest 测试在 android 上调用 java 的 C++ 代码?

转载 作者:搜寻专家 更新时间:2023-10-30 21:34:11 28 4
gpt4 key购买 nike

我正在开发一个相当复杂的 C++ 库,我计划使用适用于 Android NDK 的 googletest 对其进行正确测试。

到目前为止,我按照 google 测试示例构建了这样的项目:

Android.mk:

  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)

我使用脚本文件构建和调用测试:

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"

这适用于任何没有很多引用的纯 C++ 代码,但我的很多代码实际上都依赖于 java/jni 调用。我如何使用不仅带有 C++ 代码而且还带有 java 和资源的完整 apk 文件运行 googletest?

最佳答案

在您的测试程序中,您将有一个 main() 函数,看起来像这样:

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

这允许您像调用任何其他程序一样调用测试程序:只需在 shell 中键入可执行文件的名称。

更多信息:

https://github.com/google/googletest

关于java - 如何使用 googletest 测试在 android 上调用 java 的 C++ 代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41759122/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com