Googletest для Android NDK

Я проверил предыдущий ответ о unit test для Android, где предлагается Googletest как хороший вариант. Тем не менее, я ознакомился с платформой тестирования Google С++ - Googletest. Что касается платформ, я не вижу ничего упоминания о поддержке Android. Может кто-нибудь сказать что-нибудь, если есть способ использовать его с Android-устройствами - например. шаги по созданию инструментальной цепочки и т.д.

Ответы

Ответ 1

Вам нужно построить Googletest для Android, чтобы иметь возможность запускать его с помощью вашей инструментальной цепочки, когда вы работаете с кросс-компиляцией.

Загрузить исходный код googletest

$ mkdir googletest
$ cd googletest
$ svn checkout http://googletest.googlecode.com/svn/trunk/ .

Скопировать каталог jni в каталог googletest

$ cd /path/to/this/git
$ cp -r jni googletest/

выполнить ndk-build script

$ cd googletest/ $ ndk-build 

Вы можете найти libgtest.a в googletest/obj/local/armeabi/libgtest.a

Источник: sfuku7/googletest_android_ndk-build - github

Ответ 2

GoogleTest теперь распространяется с NDK (главным образом потому, что он используется самим тестовым набором NDK).

Он очень прост в использовании в ваших собственных проектах, см. примеры $NDK/sources/third_party/googletest/README.NDK для использования.

Ответ 3

JNI/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)

Ответ 4

Этот gradle плагин https://github.com/fsbarata/ndktest-plugin поможет вам получить работу Googletest. Однако стоит взглянуть на структуру Googletest.