Ceedling + Eclipse أو اختبارات الوحدة للميكروكونترولر

الصورة


ميكروكنترولر البرمجة؟ قرأت عن TDD أو تعبت من البحث عن الأخطاء وإعادة كتابة الكود مرة أخرى؟

صديق ، جرب الاختبارات.

ستوضح هذه المقالة كيفية دمج Ceedling في Eclipse / SW4STM32 بحيث يمر الرمز خلال الاختبارات أثناء كل بناء.

ما الذي دفعني إلى كتابة مقال؟
لم أتمكن من العثور على إرشادات مفصلة ، لكني لم أتمكن من اتباع الإرشادات الموجودة ، نظرًا لمحتوياتها السطحية أو التي عفا عليها الزمن (على سبيل المثال ، لم يعد يتم تشغيل ceedling بواسطة أمر الخليع).

تعتبر تعليمات دمج ceedling في الكسوف من المطورين ضئيلة للغاية والتعليمات الوحيدة التي تم دفعها كانت (القشة الأخيرة):
الصورة

التثبيت


على سبيل المثال ، نظام التشغيل Windows و CubeMX و SW4STM32.

تثبيت Chocolatey
افتح PowerShell.exe وقم بتنفيذ:

Set-ExecutionPolicy Bypass -Scope Process -Force; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1')) 

الصورة

تثبيت MinGW
افتح PowerShell.exe وقم بتنفيذ:
 choco install mingw 


تثبيت روبي
افتح PowerShell.exe وقم بتنفيذ:
 choco install ruby 


تثبيت الأحجار الكريمة ceedling
إعادة تشغيل PowerShell!

افتح PowerShell.exe وقم بتنفيذ:
 gem install ceedling 


فحص الصحة
افتح PowerShell.exe وقم بتنفيذ:

 cd / 

 ceedling new test_ceedling 

 cd test_ceedling 

 ceedling test:all 

الصورة

إنشاء المشروع


إنشاء مشروع باستخدام CubeMX
إنشاء مشروع في CubeMX تحت toolchain / IDE SW4STM32.

قم بتشغيل CubeMX نيابة عن المسؤول لإنشاء مشروع في الدليل C: /

هيكل التطبيق -> متقدم (وإلا فإن المشروع لا يجمع على الفور).

الصورة

نهيئ ceedling في المشروع:

 cd / 

 ceedling new test_ceedling 

لنقم بإنشاء الهيكل التالي و / س في المشروع. الملفات ، أضف المسارات إلى project.yml:

الصورة

إضافة موقع المصدر ويشمل
الصورة

الصورة

إنشاء منشئ جديد:

الصورة

الحجج -> الاختبار: الكل

الصورة

إطلاق


إنشاء نافذة وحدة تحكم أخرى للاختبارات:

الصورة

بدّله لعرض نتائج باني Ceedling:

الصورة

اضغط على ctrl + B وشاهد نتائج الاختبار في وحدة التحكم:

الصورة

إضافة الأجهزة الطرفية


غالبًا ما تعتمد نتيجة الوظيفة على المكونات الخارجية.

بالإضافة إلى أداة إنشاء الاختبار ، يدعم Unity، Ceedling CMock ، وهو مولد للكائنات وهمية والأشياء الرقيقة.

تخيل أن الآلة الحاسبة لدينا عند حساب الفرق ،

 a - b 

إذا تم الضغط على الزر ، فهو يعتبر بشكل مختلف.

 b - a 

ثم في هذه الحالة ، قد تبدو اختباراتنا كما يلي:

الصورة

تم الإعلان عن وظيفة التحقق من النقر على الزر ولكنها لم تنفذ (لم تتم كتابتها).

اضغط على ctrl + B وشاهد نتائج الاختبار في وحدة التحكم:

الصورة

في هذه الحالة ، أنشأنا تقليدًا للزر ، بدلاً من ذلك قد يكون هناك UART أو SPI أو I2C ، إلخ.

الخاتمة


الآن ، مع كل مجموعة تطبيقات على اليمين في الزاوية ، يمكنك ملاحظة نتيجة الاختبارات التي تم إجراؤها:

الصورة

Source: https://habr.com/ru/post/ar441268/


All Articles