Ceedling + Eclipse oder Unit-Tests für Mikrocontroller

Bild


Mikrocontroller programmieren? Lesen Sie mehr über TDD oder haben Sie es einfach satt, nach Fehlern zu suchen und den Code erneut zu schreiben?

Freund, probiere die Tests aus.

Dieser Artikel zeigt, wie Ceedling in Eclipse / SW4STM32 integriert wird, damit der Code bei jedem Build die Tests durchläuft.

Was hat mich dazu veranlasst, einen Artikel zu schreiben?
Ich konnte keine detaillierten Anweisungen finden, aber ich konnte die gefundenen Anweisungen aufgrund ihres oberflächlichen oder veralteten Inhalts nicht befolgen (z. B. wird ceedling nicht mehr vom Befehl rake ausgeführt).

Die Anweisungen für die Integration von Ceedling in Eclipse von Entwicklern sind sehr dürftig und die einzige gefundene Anweisung wurde bezahlt (dies war der letzte Strohhalm):
Bild

Installation


Zum Beispiel OS Windows, CubeMX und SW4STM32.

Installieren Sie Chocolatey
Öffnen Sie PowerShell.exe und führen Sie Folgendes aus:

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

Bild

Installieren Sie MinGW
Öffnen Sie PowerShell.exe und führen Sie Folgendes aus:
 choco install mingw 


Installieren Sie Ruby
Öffnen Sie PowerShell.exe und führen Sie Folgendes aus:
 choco install ruby 


Installieren Sie Edelstein-Ceedling
PowerShell neu starten !

Öffnen Sie PowerShell.exe und führen Sie Folgendes aus:
 gem install ceedling 


Gesundheitscheck
Öffnen Sie PowerShell.exe und führen Sie Folgendes aus:

 cd / 

 ceedling new test_ceedling 

 cd test_ceedling 

 ceedling test:all 

Bild

Projekterstellung


Erstellen Sie ein Projekt mit CubeMX
Erstellen Sie ein Projekt in CubeMX unter toolchain / ide SW4STM32.

Führen Sie CubeMX im Auftrag des Administrators aus, um ein Projekt im Verzeichnis C: / zu erstellen

Anwendungsstruktur -> erweitert (andernfalls wird das Projekt nicht sofort erfasst).

Bild

Wir initialisieren die Einbindung in das Projekt:

 cd / 

 ceedling new test_ceedling 

Erstellen wir die folgende Struktur und c./h im Projekt. Dateien, fügen Sie die Pfade zu project.yml hinzu:

Bild

Quellspeicherort hinzufügen & enthält
Bild

Bild

Erstellen Sie einen neuen Builder:

Bild

Argumente -> Test: alle

Bild

Starten


Erstellen Sie ein weiteres Konsolenfenster für Tests:

Bild

Schalten Sie es um, um die Ergebnisse des Ceedling Builders anzuzeigen:

Bild

Drücken Sie Strg + B und sehen Sie die Testergebnisse in der Konsole:

Bild

Peripheriegeräte hinzufügen


Oft hängt das Ergebnis einer Funktion von externen Komponenten ab.

Zusätzlich zum Testgenerierungstool Unity unterstützt Ceedling CMock, einen Generator für Scheinobjekte und Stubs.

Stellen Sie sich vor, unser Taschenrechner berechnet bei der Berechnung der Differenz

 a - b 

Wenn die Taste gedrückt wird, wird dies anders betrachtet.

 b - a 

In diesem Fall sehen unsere Tests möglicherweise folgendermaßen aus:

Bild

Die Funktion zum Überprüfen des Schaltflächenklicks wurde deklariert, aber nicht implementiert (nicht geschrieben).

Drücken Sie Strg + B und sehen Sie die Testergebnisse in der Konsole:

Bild

In diesem Fall haben wir eine Imitation einer Schaltfläche erstellt, an deren Stelle möglicherweise UART, SPI, I2C usw. stehen.

Fazit


Jetzt können Sie mit jeder Anwendungsbaugruppe rechts in der Ecke das Ergebnis der durchgeführten Tests beobachten:

Bild

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


All Articles