Test options

See also

Please make sure to read PIO Unit Testing guide first.

test_filter

Type: String (Pattern) | Multiple: Yes

Process only the PIO Unit Testing tests where the name matches specified patterns.

Also, you can filter some tests using platformio test --filter command.

Pattern

Meaning

*

matches everything

?

matches any single character

[seq]

matches any character in seq

[!seq]

matches any character not in seq

Example

[env:myenv]
test_filter = footest, bartest_*, test[13]

test_ignore

Type: String (Pattern) | Multiple: Yes

Ignore PIO Unit Testing tests where the name matches specified patterns.

Also, you can ignore some tests using platformio test --ignore command.

Pattern

Meaning

*

matches everything

?

matches any single character

[seq]

matches any character in seq

[!seq]

matches any character not in seq

Example

[env:myenv]
test_ignore =
  footest
  bartest_*
  test[13]

test_port

Type: String (Pattern) | Multiple: No

This option specifies communication interface (Serial/UART) between PlatformIO PIO Unit Testing Engine and target device. For example,

  • /dev/ttyUSB0 - Unix-based OS

  • COM3 - Windows OS

If test_port isn’t specified, then PlatformIO will try to detect it automatically.

To print all available serial ports use platformio device list command.

test_speed

Type: Integer | Multiple: No | Default: 115200

A connection speed (baud rate) to communicate with a target device.

test_transport

Type: String | Multiple: No

PIO Unit Testing engine uses different transports to communicate with a target device. By default, it uses Serial/UART transport provided by a framework. For example, when “framework = arduino”, the first available Serial will be used.

Default baudrate/speed is set to test_speed.

You can also define custom transport and implement its interface:

  • unittest_uart_begin();

  • unittest_uart_putchar(char c);

  • unittest_uart_flush();

  • unittest_uart_end();

Examples

  1. Custom transport for Native platform

[env:mycustomtransport]
platform = native
test_transport = custom
  • Create unittest_transport.h file in project/test directory and implement prototypes above

#ifndef UNITTEST_TRANSPORT_H
#define UNITTEST_TRANSPORT_H

#include <stdio.h>

void unittest_uart_begin() {

}

void unittest_uart_putchar(char c) {
  putchar(c);
}

void unittest_uart_flush() {
  fflush(stdout);
}

void unittest_uart_end() {

}

#endif
  1. STM32Cube HAL and Nucleo-F401RE: debugging and unit testing

test_build_project_src

Type: Bool (yes or no) | Multiple: No | Default: no

Force PIO Unit Testing engine to build project source code from src_dir setting test_build_project_src to yes. More detail about Shared Code.

Example

[env:myenv]
platform = ...
test_build_project_src = yes