Receber por email
← Voltar para o catálogo

unity-ceedling-test

Testes unitários embarcados com o framework Unity e CMock.

1.4kestrelas
Atualizado há 4 meses

Ver no GitHub ↗ Licença: MIT

Como adicionar

/plugin marketplace add a5c-ai/babysitter

O comando exato pode variar conforme o repositório. Confira o README no GitHub.

Para o autor da skill

Cole no README do seu repo

Mostra que sua skill está catalogada na Skillteca, gera backlink e tráfego rastreável.

[![Skillteca](https://www.skillteca.com.br/api/badge/unity-ceedling-test/svg)](https://www.skillteca.com.br/skills/unity-ceedling-test)

Skills relacionadas

Ver todas de Automação →

Alerta por categoria

Receba novas skills de Automação toda segunda

1 email curto, só com as skills novas de Automação. 4 minutos de leitura, sem spam, cancela com 1 clique.

Você confirma o email no primeiro envio. Sem spam. Cancela com 1 clique.

Ler descrição completa

Unity/Ceedling Test Skill

Overview

This skill provides embedded unit testing capabilities using the Unity test framework, CMock mock generation, and Ceedling build system for comprehensive off-target and on-target testing.

Capabilities

Unity Test Framework

  • Test case generation
  • Assertion macro usage
  • Test fixture setup/teardown
  • Test group organization
  • Parameterized tests
  • Custom assertions

CMock Mock Generation

  • Automatic mock generation from headers
  • HAL/driver mocking strategies
  • Callback mocking
  • Argument capture and validation
  • Return value configuration
  • Call count verification

Ceedling Build System

  • Project configuration (project.yml)
  • Test runner generation
  • Coverage integration
  • Compiler configuration
  • Plugin management
  • CI/CD integration

Hardware Abstraction Mocking

  • Register mock strategies
  • DMA mock patterns
  • Interrupt mock handling
  • Timing mock approaches
  • State machine mocking

Test Coverage

  • gcov integration
  • lcov report generation
  • Branch coverage analysis
  • MC/DC coverage (for safety)
  • Coverage threshold enforcement

Off-Target Testing

  • Host compilation setup
  • Platform abstraction
  • Stub implementation
  • Double buffering for DMA
  • Fake timer implementations

Target Processes

  • embedded-unit-testing.js - Unit test implementation
  • device-driver-development.js - Driver testing
  • bsp-development.js - BSP unit testing

Dependencies

  • Unity test framework
  • CMock mock generator
  • Ceedling build system (optional)
  • gcov/lcov for coverage

Usage Context

This skill is invoked when tasks require:

  • Unit test development
  • Mock generation for drivers
  • Test coverage analysis
  • Off-target testing setup
  • TDD for embedded

Project Structure

project/
  src/
    driver.c
    driver.h
  test/
    test_driver.c
    support/
      test_helper.c
  build/
    test/
    artifacts/
  project.yml

Configuration Example (project.yml)

:project:
  :build_root: build/
  :test_file_prefix: test_
  :use_exceptions: FALSE

:paths:
  :test:
    - test/**
  :source:
    - src/**
  :include:
    - inc/**

:cmock:
  :mock_prefix: mock_
  :when_no_prototypes: :warn
  :enforce_strict_ordering: TRUE
  :plugins:
    - :ignore
    - :callback
    - :return_thru_ptr

:plugins:
  :enabled:
    - gcov
    - xml_tests_report

Test Example

#include "unity.h"
#include "driver.h"
#include "mock_hal_spi.h"

void setUp(void) {
    driver_init();
}

void tearDown(void) {
    driver_deinit();
}

void test_driver_sends_correct_command(void) {
    uint8_t expected[] = {0x01, 0x02, 0x03};

    HAL_SPI_Transmit_ExpectWithArrayAndReturn(
        SPI1, expected, 3, 3, 100, HAL_OK);

    TEST_ASSERT_EQUAL(DRIVER_OK, driver_send_command(0x01));
}
Compartilhar X LinkedIn