Testes de Ceedling + Eclipse ou de unidade para microcontroladores

imagem


Microcontroladores de programação? Leia sobre o TDD ou apenas se cansou de procurar bugs e reescrever o código novamente?

Amigo, tente os testes.

Este artigo mostrará como integrar o Ceedling ao Eclipse / SW4STM32 para que o código passe pelos testes durante cada construção.

O que me levou a escrever um artigo?
Não consegui encontrar instruções detalhadas, mas não pude seguir as instruções encontradas, devido ao conteúdo superficial ou desatualizado (por exemplo, o ceedling não é mais executado pelo comando rake).

As instruções para integrar o ceedling no eclipse dos desenvolvedores são muito escassas e a única instrução encontrada foi paga (essa foi a última gota):
imagem

Instalação


Por exemplo, SO Windows, CubeMX e SW4STM32.

Instalar Chocolatey
Abra o PowerShell.exe e execute:

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

imagem

Instale o MinGW
Abra o PowerShell.exe e execute:
 choco install mingw 


Instalar ruby
Abra o PowerShell.exe e execute:
 choco install ruby 


Instalar geeed ceedling
Reiniciando o PowerShell!

Abra o PowerShell.exe e execute:
 gem install ceedling 


Verificação de integridade
Abra o PowerShell.exe e execute:

 cd / 

 ceedling new test_ceedling 

 cd test_ceedling 

 ceedling test:all 

imagem

Criação de projeto


Crie um projeto usando o CubeMX
Crie um projeto no CubeMX em toolchain / ide SW4STM32.

Execute o CubeMX em nome do administrador para criar um projeto no diretório C: /

Estruturador de aplicativos -> avançado (caso contrário, o projeto não será reunido imediatamente).

imagem

Inicializamos o ceedling no projeto:

 cd / 

 ceedling new test_ceedling 

Vamos criar a seguinte estrutura ec./h no projeto. arquivos, adicione os caminhos para project.yml:

imagem

Adicionar local de origem e inclui
imagem

imagem

Crie um novo construtor:

imagem

Argumentos -> teste: todos

imagem

Lançamento


Crie outra janela do console para testes:

imagem

Mude para exibir os resultados do construtor Ceedling:

imagem

Pressione ctrl + B e veja os resultados do teste no console:

imagem

Adicionar periféricos


Freqüentemente, o resultado de uma função depende de componentes externos.

Além da ferramenta de geração de testes, o Unity, o Ceedling oferece suporte ao CMock, um gerador de objetos e stubs simulados.

Imagine que nossa calculadora ao calcular a diferença,

 a - b 

se o botão for pressionado, será considerado diferente.

 b - a 

Nesse caso, nossos testes podem ser assim:

imagem

A função de verificação de clique no botão foi declarada, mas não implementada (não gravada).

Pressione ctrl + B e veja os resultados do teste no console:

imagem

Nesse caso, criamos uma imitação de um botão, no lugar do qual pode haver UART, SPI, I2C etc.

Conclusão


Agora, com cada montagem de aplicativo à direita no canto, é possível observar o resultado dos testes realizados:

imagem

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


All Articles