Saya ingin mengelola kode sumber Arduino (proyek dan perpustakaan) saya di bawah kendali sumber dengan pengujian berkelanjutan. Bagaimana saya dapat mengkompilasi kode secara otomatis dengan alat integrasi berkesinambungan, untuk memastikan setiap versi mengkompilasi dengan bersih? Dalam kasus terbaik, seseorang harus dapat mengkonfigurasi build untuk beberapa prosesor, secara opsional menjalankan pengujian unit dan memeriksa ukuran biner maksimum.
programming
version-control
Jakob
sumber
sumber
avr-size
?Jawaban:
Versi terbaru dari ide Arduino memiliki antarmuka baris perintah untuk membangun dan mengunggah kode. Tapi Anda jelas bisa melakukannya dengan makefile dan avrdude. Sekarang, Anda telah menyusun kode Anda TETAPI Anda perlu menguji. Karena simulator itu rumit, tidak lengkap, luas, dan .. Hanya simulasi, dan karena chipnya relatif murah, membuat papan penyihir akan membuat interaksi HW DAN memeriksa hasilnya dengan cara tercepat dan termudah. Pada papan "khusus" itu Anda dapat mengunggah sesuatu seperti penyihir juru bahasa, mengambil tes dari PC dan menjalankannya, sesuatu yang mirip dengan firmata for arduino. Setidaknya begitulah cara saya membangunnya. Dan sejauh yang saya tahu tidak ada implementasi yang diketahui tentang ini, bahkan jika saya cukup yakin banyak industri harus dan mungkin melakukan itu.
sumber
Sebagai pencipta PlatformIO, saya akan merekomendasikan Anda untuk melihatnya. Ini adalah pembuat kode lintas-platform dan manajer perpustakaan yang hilang. Itu dapat membangun kode yang sama untuk banyak platform dan papan pengembangan tertanam yang populer.
PlatformIO dapat diintegrasikan dengan banyak sistem Continuous Integration (CI) yang populer (atau milik Anda). Lihat dokumentasi dengan contoh .
Mari kita lihat
.travis.yml
config / template untuk Travis CI:Contoh
Integrasi untuk
USB_Host_Shield_2.0
proyek. File.travis.yml
konfigurasi:sumber
Salah satu contoh pengaturan integrasi berkelanjutan Jenkins untuk proyek Arduino dapat ditemukan di sini: Integrasi berkelanjutan untuk sistem tertanam
Contoh ini menunjukkan cara membuat dan mengunggah gambar ke Arduino dan menjalankan tes web Selenium (sistem yang diuji adalah server web berbasis Arduino).
sumber
Saya menulis tes kerangka kerja unittest ini untuk Arduino, karena saya tidak dapat menemukan yang sudah ada. Walaupun saya tidak menulisnya untuk CI, itu akan cocok untuk pekerjaan CI, karena tidak memerlukan perangkat keras tetapi dapat dijalankan pada PC.
Menjalankan pekerjaan CI tanpa perangkat keras memiliki sisi baik dan sisi buruk, sisi baik selain itu
Pada sisi negatifnya ada:
sumber
Saya baru saja menyusun ukuran penulisan yang layak sebagai jawaban untuk pertanyaan terkait ini tentang kerangka kerja pengujian Arduino CI / unit yang saya tulis yang akhirnya cukup matang untuk mulai dibicarakan di depan umum.
The
arduino_ci
ruby permata mendukung pengujian lokal dan integrasi Travis CI (misalnya membangun ini pekerjaan untuk perpustakaan Adafruit Fona ).Beberapa contoh cara mengintegrasikan:
Saya memiliki masalah yang dibuat untuk melaporkan ukuran sketsa tetapi tidak ada pekerjaan yang dilakukan untuk itu. Mungkin juga saya bisa memparalelkan bangunan suatu hari nanti, tetapi saat ini saya tidak yakin bagaimana saya akan melakukannya. Saat ini, langkah pembangunan yang paling memakan waktu pada Travis CI adalah mengunduh Arduino IDE ... pengujian paralel tidak akan banyak menyulitkan jika setiap pekerjaan perlu melakukan langkah itu.
sumber
Saya akan menyarankan untuk menggunakan arduino eclipse plugin bernama sloeber sloeber.io yang saya memimpin proyek.
Ini terintegrasi dengan kontrol versi dan memungkinkan pembangunan di beberapa platform karena mendukung banyak konfigurasi.
Meskipun ini bukan bukti bodoh saya telah mendokumentasikan dan menunjukkan menggunakan unit test kode Arduino pada pc lokal menggunakan kerangka uji google.
Berikut ini tautan ke blog yang berisi presentasi tentang bagaimana Anda dapat melakukannya. http://blog.baeyens.it/#post25
sumber