LINUX.ORG.RU

Сборка c++ проекта

 ,


0

2

Добрый день! Хочется чего то такого эдакого, решил закостылить свой stomp сервер в качестве хобби на c++, с плюсами дела ранее не имел, проект хочу маленький без всяких монструозных библиотек и фреймворков. Для работы с сетью возьму boost.asio (альтернативы?). Вопрос - как сегодня нормальные люди собирают c++ проекты? А тестируют как? В java все просто - взял maven + junit и все хорошо, а в суровом мире бородачей как обстоят дела?

cmake (не рекомендую заморачиваться с CTest, удобнее пускать итоговые бинари тестов руками)

boost.test/gmock/catch => unit, лично я предпочитаю gmock, но в boost.test тоже есть свои вкусности и оно вместе с буст идёт, но нет mock/stub/fake из коробки.

python => acceptance, сетевые сервера очень удобно тестировать из питон скриптов, вне зависимости от того, на чем они написаны

Чтобы два раза не вставать, в качестве ide порекомендую QtCreator :)

pon4ik ★★★★★ ()

Cmake, в качестве либы для тестинга я юзаю gtest, но если буст тянешь, то имеет смысл поюзать Boost.Test. Ещё вот модно сейчас Conan обмазываться, чтобы тому, кто захочет твой проект собрать у себя, не пришлось мучиться с зависимостями - conan постарается всё разрулить.

IDE выбор неважен, в принципе. Каждый пишет ровно на том, что ему удобно.

zamazan4ik ★★ ()
Ответ на: комментарий от pon4ik

Большое спасибо за задание направления, это действительно полезно для меня :)

matroskin ()

Для работы с сетью возьму boost.asio

Asio Standalone можно взять, чтоб boost_system не тащить

anonymous ()

cmake + ctest. В качестве тест фреймворка я юзаю самописный хедер на две страницы, а так бы взял что-то похожее типа catch. gtest/boost - ненужная жирнота.

slovazap ★★★★★ ()

Для тестов gtest, который с полпинка интегрируется с cmake

UVV ★★★★★ ()
Ответ на: комментарий от matroskin

Если в качестве тестового фреймворка будет выбран gmock/gtest настоятельно рекомендую ознакомиться с рекомендоваными механизмами подключения к проекту. В частности в cmake лучше подключать либо в виде cmake подпроекта (а не как либу и набор хидеров) либо как gtest-all.[h]|[cpp]. Не просто так там нету цели install в этих фреймворках, но многие прыгают по граблям.

pon4ik ★★★★★ ()

Сборка cmake (как уже отписались многие). Тесты gtest/gmock. Собираю как их как подпроект cmake и получаю пару библиотек gtest_main/gmock_main (в этих библиотеках и определена функция main запускающая тестовые кейсы), бинарник теста линкую с gmock_main. Запуск тестов через CTest (это часть cmake). В качестве IDE QtCreator. С cmake дружит, тесты одним хоткеем запускает. Если сетевой IO предполагается асинхронный, то имеет смысл посмотреть на libuv + враппер uvw (https://github.com/skypjack/uvw).

dvetutnev ()

Большие волосатые дяди используют Cmake, но ребятня вроде меня использует qmake (+Qt Creator IDE). От фреймворков отказываешься напрасно, думаешь пользователь оценит малокилобайтность твоей программы?

I-Love-Microsoft ★★★★★ ()
Ответ на: комментарий от I-Love-Microsoft

qmake

Вне qt проекта он выглядит жалко

UVV ★★★★★ ()
Ответ на: комментарий от I-Love-Microsoft

Это не для пользователей, это для себя «потыкать-разобраться-навелосипедить», для пользователей куча готовых ent-ready серверов есть.

matroskin ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.