Об этом проекте
Yoga — это встраиваемый движок разметки, реализующий семантику flexbox в соответствии с веб-стандартами. Его основная реализация написана на C++20 и собирается с помощью CMake, а также поставляется с привязками для нескольких языков программирования, что позволяет использовать его на различных платформах и в разных средах выполнения.
Проект предоставляет скрипт-обертку для сборки основной библиотеки и запуска юнит-тестов:
```sh
./unit_tests <Debug|Release>
```
Если установлен ninja, скрипт использует его для более быстрой сборки. Yoga также доступен в виде порта vcpkg, поддерживаемого Microsoft и участниками сообщества; пользователи могут запрашивать обновления через репозиторий vcpkg.
Тестирование в значительной степени автоматизировано. Тесты генерируются из HTML-фикстур, описывающих структуру узлов, которые рендерятся в Chrome для получения ожидаемых результатов разметки. Новые фикстуры помещаются в `gentest/fixtures`, например:
```html
<div id="my_test" style="width: 100px; height: 100px; align-items: center;">
<div style="width: 50px; height: 50px;"></div>
</div>
```
Чтобы сгенерировать тесты из новых фикстур, установите yarn classic, выполните `yarn install` для загрузки зависимостей генератора тестов, а затем запустите `yarn gentest` в директории yoga.
Для отладки Yoga включает конфигурацию запуска VSCode, которая поддерживает отладку юнит-тестов с точками останова с помощью «Debug C++ Unit tests (lldb)» или, в Windows, «Debug C++ Unit tests (vsdbg)».
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.