Skip to content


Subversion checkout URL

You can clone with
Download ZIP
Arduino TestSuite to automate Arduino unit tests
Python Arduino
Latest commit 632cabc @jeroendoggen Merge pull request #21 from mmurdoch/add-tested-windows-readme
Add 'tested on Windows' to readme

Arduino TestSuite: Automated Arduino Unit Tests

This Python scripts allows automated running of several Arduino unit tests. The testing process is started on the PC but the tests run on the actual Arduino hardware. One set of unit tests is typically used to test one Arduino library.

The following steps are performed for each set of unit tests:

  1. The script compiles and uploads an Arduino sketch that contains the unit testing.
  2. The unit tests are run on the Arduino board.
  3. The results of the test are printed over the serial port and analyzed by the Python script.
  4. The script starts the next test, repeating steps 1,2 and 3 for all test that are requested in the configuration file. The script prints a summary showing an overview of all the failed/passed tests in the complete testsuite.



Typical test output:

user@computer:~/tests$ python -m arduino_testsuite
Planned tests:
 1. examples/floatingPin
 2. examples/inInterval
 3. examples/simpleTest
 4. examples/buildErrorTest
 5. examples/nonExistingFolder
 6. examples/slowTest
 7. examples/verySlowTest
.... output normally continues for a while ... link to full log below.



  • Currently only tested on Linux and Windows 7
  • The program was created with other OS users in mind, so it will eventually get full cross-platform support.


If not stated otherwise arduino_testsuite is distributed in terms of the GPLv2 software license. See COPYING in the distribution for details.

Bug reports:


0.2.2: Error handling:

  • Compile & upload errors
  • Timing: timeout for uploading & running of the tests
  • Missing files: wrong test folder, no config file
  • Hardware: Disconnect Arduino during test

0.2.1: Settings & configuration

  • Passing cli arguments & cli help messages
  • Settings separated from other code
  • Start tests from config file

0.2: First working OOP version

  • Subprocess for arscons
  • Classes: Test, TestSuite, InfoPrinter
  • Divided the code in several modules

0.1: Initial release:

  • Call scons
  • Run unit test
  • Print summary
Something went wrong with that request. Please try again.