Readme.md

    Pico Unit Test

    Framework юнит-тестирования микроконтроллеров RP2040 в Pico SDK C++

    Установка

    Скачайте папку DUnitTest в корневую папку вашего проекта.

    CMakeLists

    Если используете UART для вывода в Serialport monitor

    add_subdirectory(DUnitTest)
    pico_enable_stdio_uart(YourProjectName 1)
    target_link_libraries(YourProjectName pico_stdlib DUnitTest)
    

    Если используете USB

     add_subdirectory(DUnitTest)
     pico_enable_stdio_usb(YourProjectName 1)
     target_link_libraries(YourProjectName pico_stdlib DUnitTest)
    

    Include

    #include "DUnitFramework.h"
    

    Создание теста

    IMPLEMENT_UNIT_TEST(YourTestName)  
    {  
      //Your test body here  
      return true;  
    }
    

    Латентные команды

    Латентные команды выполняются после теста, в котором они были объявлены. Создание латентной команды

    IMPLEMENT_LATENT_COMMAND(LatentCommandName)  
    {  
      //Command Body  
      return false;  
    }
    

    Латентная команда будет вызываться до тех пор, пока не вернет true. Добавление латентной команды в тест

    IMPLEMENT_UNIT_TEST(YourTestName)  
    {  
        ADD_LATENT_COMMAND(LatentCommandName);
        //Your test body here  
        return true;  
    }
    

    Логирование

    D_LOG(ELogVerbosity, "LogMessage");
    

    Для форматирования сообщения используйте функцию TEXT(). Функция имеет такой же синтаксис как printf()

    std::string TEXT(const char* Format, Args...args)
    

    Тест проваливается если уровне логирования WARNING или ERROR

    Тестирование

    TestTrue("FailMessage", bool Value); // Тест считается проваленным если Value == false;
    TestFalse("FailMessage", bool Value); // Тест считает проваленным если Value == true;
    TestEqual("FailMessage", TestValue, ExpectedValue); // Тест считается проваленным если TestValue != ExpectedValue
    TestNotEqual("FailMessage", TestValue, ExpectenValue); // Тест считается проваленным если TestValue == ExpectedValue
    

    Запуск тестов

    Для запуска тестов используйте макрос RUN_TEST;

    int main()  
    {  
          RUN_TESTS;  
      
          while(true)  
         { 
         }
    }
    

    После завершения тестов в монитор серийного порта выводится лог.

    ------------------------------TESTS STARTED------------------------------
    LOG CheckMaxValue:
    
    ERROR:	Positive number and zero
    ERROR:	Two equal positive numbers
    ERROR:	Two positive numbers
    -------------------------------------------------------------------------
    
    Test CheckMaxValue is FAILED in 10 ms
    
    General time: 10 ms
    
    -----------------------------TESTS COMPLETED-----------------------------
    

    PUTTY SERIAL PORT MONITOR

    Если вы используете Putty Monitor, можно включить вывод в Log цветного текста; Добавьте строку в CMake файл

    add_compile_definitions(PUTTY_SERIAL_MONITOR)
    
    Конвейеры
    0 успешных
    0 с ошибкой