Я хотел бы управлять своим исходным кодом Arduino (проектами и библиотеками) под контролем исходного кода с помощью непрерывного тестирования. Как я могу автоматически скомпилировать код с помощью инструментов непрерывной интеграции, чтобы обеспечить правильную компиляцию каждой версии? В лучшем случае нужно уметь настраивать сборки для нескольких процессоров, опционально запускать модульные тесты и проверять максимальный размер двоичного файла.
16
avr-size
?Ответы:
Новейшая версия Arduino ide имеет интерфейс командной строки для создания и загрузки кода. Но вы можете сделать это с помощью make-файла и avrdude. Теперь вы скомпилировали свой код, НО вам нужно протестировать. Так как симулятор сложен, неполон, экспансивен и ... Просто симуляция, и поскольку чипы относительно дешевы, создание доски для ведьм сделает взаимодействие HW И проверит результаты самым быстрым и простым способом. На эту «специальную» доску вы можете загрузить что-то вроде переводчика, который берет тест с ПК и выполнить его, что-то похожее на фирму для Arduino. По крайней мере, так я бы его построил. И, насколько я знаю, реализации этого не известно, даже если я вполне уверен, что многие отрасли должны и, вероятно, делают это.
источник
Как создатель PlatformIO я бы порекомендовал вам изучить его. Это кроссплатформенный компоновщик кода и отсутствующий менеджер библиотек. Он может создавать один и тот же код для многих популярных платформ и плат встраиваемых систем.
PlatformIO может быть интегрирован со многими популярными системами непрерывной интеграции (CI) (или с вашими собственными). Смотрите документацию с примерами .
Давайте рассмотрим
.travis.yml
конфиг / шаблон для Travis CI:пример
Интеграция для
USB_Host_Shield_2.0
проекта..travis.yml
Файл конфигурации:источник
Один из примеров настройки непрерывной интеграции Jenkins для проекта Arduino можно найти здесь: Непрерывная интеграция для встраиваемых систем.
В примере показано, как создать и загрузить изображение в Arduino и выполнить веб-тесты Selenium (тестируемая система - веб-сервер на базе Arduino).
источник
Я написал этот тестовый блок юнит- тестов для Arduino, так как я не мог найти правильного существующего. Хотя я не писал его для CI, это было бы хорошо для работы CI, так как он не требует аппаратного обеспечения, но может быть запущен на ПК.
Выполнение заданий CI без аппаратного обеспечения имеет как хорошие, так и плохие стороны, причем хорошие
С другой стороны есть:
источник
Я только что собрал рецензию приличного размера в качестве ответа на этот связанный вопрос о платформе CI / модульного тестирования Arduino, которую я написал , и, наконец, достаточно зрелой, чтобы начать публичное обсуждение.
arduino_ci
Рубиновый камень поддерживает локальное тестирование и интеграцию Travis CI (например , эту работу сборки для библиотеки Adafruit Fona ).Некоторые примеры того, как это объединяет:
У меня есть проблема, созданная для сообщения о размере эскиза, но никакой работы над этим не было сделано. Также возможно, что когда-нибудь я смогу распараллелить сборки, но на данный момент я не совсем уверен, как бы я это сделал. В настоящее время наиболее трудоемким этапом сборки на Travis CI является загрузка Arduino IDE ... параллельное тестирование не окажет большого влияния на это, если каждая задача должна выполнить этот шаг.
источник
Я бы посоветовал использовать плагин arduino eclipse с именем sloeber sloeber.io, руководителем которого я являюсь.
Он интегрируется с контролем версий и позволяет строить на нескольких платформах, поскольку поддерживает несколько конфигураций.
Хотя это еще не идиотское доказательство, я задокументировал и продемонстрировал, используя модульное тестирование кода Arduino на локальном ПК с использованием среды тестирования Google.
Вот ссылка на блог, содержащий презентацию о том, как вы можете это сделать. http://blog.baeyens.it/#post25
источник