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):

Instalação
Por exemplo, SO Windows, CubeMX e SW4STM32.
Instalar ChocolateyAbra o PowerShell.exe e execute:
Set-ExecutionPolicy Bypass -Scope Process -Force; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))

Instale o MinGWAbra o PowerShell.exe e execute:
choco install mingw
Instalar rubyAbra o PowerShell.exe e execute:
choco install ruby
Instalar geeed ceedlingReiniciando o PowerShell!
Abra o PowerShell.exe e execute:
gem install ceedling
Verificação de integridadeAbra o PowerShell.exe e execute:
cd /
ceedling new test_ceedling
cd test_ceedling
ceedling test:all

Criação de projeto
Crie um projeto usando o CubeMXCrie 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).

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:

Adicionar local de origem e inclui Crie um novo construtor:

Argumentos -> teste: todos

Lançamento
Crie outra janela do console para testes:

Mude para exibir os resultados do construtor Ceedling:

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

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:

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:

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:
