我想通過持續測試在源代碼管理下管理我的Arduino源代碼(項目和庫)。如何使用持續集成工具自動編譯代碼,以確保每個版本都能乾淨地編譯?最好的情況下,應該能夠為多個處理器配置構建,可以選擇運行單元測試並檢查最大二進制大小。
我想通過持續測試在源代碼管理下管理我的Arduino源代碼(項目和庫)。如何使用持續集成工具自動編譯代碼,以確保每個版本都能乾淨地編譯?最好的情況下,應該能夠為多個處理器配置構建,可以選擇運行單元測試並檢查最大二進制大小。
最新版本的Arduino ide具有用於創建和上傳代碼的命令行界面。但是顯然您可以通過makefile和avrdude來完成。現在,您已經編譯了代碼,但需要測試。由於模擬器複雜,不完整,擴展且..只是一個模擬,並且由於芯片相對便宜,因此建造板子巫婆可以進行硬件交互並以最快,最簡單的方式檢查結果。在該“特殊”板上,您可以上載諸如口譯巫婆之類的東西,從PC上進行測試並執行它,類似於arduino的firmata。至少我將如何構建它。據我所知,即使我非常確定許多行業都應該並且可能做到這一點,也尚不知道如何實現。
作為 PlatformIO的創建者,我建議您對其進行研究。這是一個跨平台的代碼生成器,缺少庫管理器。它可以為許多流行的嵌入式開發平台和開發板構建相同的代碼。
PlatformIO可以與許多流行的連續集成(CI)系統(或您自己的系統)集成。參見帶有示例的文檔。
讓我們看看Travis CI的 .travis.yml
配置/模板:
語言:pythonpython:-“ 2.7” env:-PLATFORMIO_CI_SRC = path / to / source / file.c-PLATFORMIO_CI_SRC = path / to / source / file.ino-PLATFORMIO_CI_SRC = path / to / source / directoryinstall:-python -c $(curl -fsSL https://raw.githubusercontent.com/platformio/platformio/master/scripts/get-platformio.py)“腳本:-platformio ci --board = TYPE_1 --board = TYPE_2 --board = TYPE_N
USB_Host_Shield_2.0
項目的集成。 .travis.yml
配置文件:
語言:pythonpython:-“ 2.7” env:-PLATFORMIO_CI_SRC = examples / acm / acm_terminal-PLATFORMIO_CI_SRC = examples / Bluetooth / WiiIRCamera PLATFORMIO_BUILD_FLAGS =“-DWIICAMERA”-PLATFORMIO_CI_SRC = examples / ftdi / USBFTDILoopback-PLATFORMIO_CI_SRC = examples / Xbox / XBOXUSB#-...安裝:-python -c“ $(curl -fsSL https://raw.githubusercontent.com/ platformio / platformio / master / scripts / get-platformio.py)“#PlatformIO庫註冊表中的庫#http://platformio.org/#!/lib/show/416/TinyGPS#http://platformio.org/# !/ lib / show / 417 / SPI4Teensy3-platformio lib install 416 417腳本:-platformio ci --board = uno --board = teensy31 --board = due --lib =“。”
可以在此處找到為Arduino項目設置Jenkins持續集成的一個示例:嵌入式系統的持續集成
該示例顯示瞭如何構建圖像並將其上傳到Arduino和執行Selenium Web測試(被測系統是基於Arduino的Web服務器)。
我為Arduino編寫了這個測試 unittest框架,因為我找不到合適的框架。雖然我沒有為CI編寫它,但它很適合CI作業,因為它不需要硬件,但可以在PC上運行。
在沒有硬件的情況下運行CI作業有好的方面也有不好的方面。 ,好的一面是
缺點是:
我已經整理了一個不錯的尺寸文章作為對此相關問題的答案關於我編寫的Arduino CI /單元測試框架,該框架最終已經足夠成熟,可以開始了
arduino_ci
ruby gem支持本地測試和Travis CI集成(例如,此Adafruit FONA庫的構建工作)。
一些如何集成的示例:
我有一個報告草圖尺寸的問題,但是尚未完成任何工作。也有可能我有一天可以並行化構建,但是此刻我還不確定如何做到這一點。現在,Travis CI上最耗時的構建步驟是下載Arduino IDE ...如果每個工作都需要這樣做,那麼並行測試就不會有太大的麻煩。
我建議使用名為sloeber sloeber.io的arduino eclipse插件,我是項目負責人。
它與版本控制集成,並允許在支持的多個平台上構建多種配置。
儘管還沒有白痴證明,但我已經使用Google測試框架在本地PC上使用arduino代碼進行單元測試來記錄和演示。
這裡是指向博客的鏈接,其中包含您的演示文稿可以做到。 http://blog.baeyens.it/#post25