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 с ошибкой