Я искал googletests , используя muon, но похоже, что в Ubuntu нет пакетов для него. Нужно ли устанавливать с использованием источников?
Новая информация:
стоит отметить, что libgtest0 больше не существует. Приблизительно с 2013 (я не уверен в дате изменения) посмотрите этот вопрос:
, Почему никакие файлы библиотеки не установлены для теста Google?
<час>Старый ответ до 2012:
Это находится в репозиториях Ubuntu
sudo apt-get install libgtest0 libgtest-dev
, См. также gtest-конфигурация человека
Минимальный запускаемый пример
Поскольку Debian/Ubuntu отказываются упаковывать сборку, как указано в: Почему не установлены файлы библиотеки для теста Google? Я просто клонирую и собрать его самостоятельно (или в реальном проекте добавить как подмодуль):
git clone https://github.com/google/googletest
cd googletest
git checkout b1fbd33c06cdb0024c67733c6fdec2009d17b384
mkdir build
cd build
cmake ..
make -j`nproc`
cd ../..
затем я использую его со своим тестовым файлом main.cpp
:
g++ \
-Wall \
-Werror \
-Wextra \
-pedantic \
-O0 \
-I googletest/googletest/include \
-std=c++11 \
-o main.out \
main.cpp \
googletest/build/lib/libgtest.a \
-lpthread \
;
main.cpp
#include <gtest/gtest.h>
int myfunc(int n) {
return n + 1;
}
TEST(asdfTest, HandlesPositiveInput) {
EXPECT_EQ(myfunc(1), 2);
EXPECT_EQ(myfunc(2), 3);
}
int main(int argc, char **argv) {
::testing::InitGoogleTest(&argc, argv);
return RUN_ALL_TESTS();
}
, чтобы получить ожидаемый результат:
[==========] Running 1 test from 1 test suite.
[----------] Global test environment set-up.
[----------] 1 test from asdfTest
[ RUN ] asdfTest.HandlesPositiveInput
[ OK ] asdfTest.HandlesPositiveInput (0 ms)
[----------] 1 test from asdfTest (0 ms total)
[----------] Global test environment tear-down
[==========] 1 test from 1 test suite ran. (0 ms total)
[ PASSED ] 1 test.
В качестве альтернативы вы также можете удалить функцию main
из файла main.cpp
и вместо этого использовать функцию по умолчанию, предоставленную libgtest_main.a
:
g++ \
-Wall \
-Werror \
-Wextra \
-pedantic \
-O0 \
-I googletest/googletest/include \
-std=c++11 \
-o main.out \
main.cpp \
googletest/build/lib/libgtest.a \
googletest/build/lib/libgtest_main.a \
-lpthread \
;
Проверено на Ubuntu 20.04.