Testing

Introduction
The Test Framework Workbench is not really a modelling workbench, but it contains a set of Python scripts to perform different tests on the core components of FreeCAD, in order to debug problems. See also debugging.

You can run the tests from the command line, by using the or  options.

Run all tests:

Run only some the specified unit test, for example:

If a test does not need the GUI, it can also be executed in console mode by setting the or  option in addition. This usually results in much faster startup time as the GUI is not loaded. For example:

Test menu
Each top level directory in FreeCAD should have a file with the tests that can be run for that particular workbench or module. The file usually starts with the word.

To run a test from within FreeCAD, switch to the Test Workbench, then, then enter the name of the Python file with the tests; for example, for the Draft Workbench, this would be , then press.

Test functions
This is the list of test apps as of 0.15 git 4207:

TestAPP.All
Add test function

BaseTests
Add test function

UnitTests
Add test function

Document
Add test function

UnicodeTests
Add test function

MeshTestsApp
Add test function

TestDraft
Add test function

TestSketcherApp
Add test function

TestPartApp
Add test function

TestPartDesignApp
Add test function

TestPathApp
Path workbench test cases:
 * depthTestCases:
 * PathTestUtils:
 * TestDressupDogbone: Test functionality of Dogbone dressup.
 * TestHoldingTags: Test functionality of Holding Tags dressup.
 * TestPathAdaptive: Test selection capability of Adaptive operation.
 * TestPathCore: Test core functionality of Path workbench.
 * TestPathDeburr: Test general functionality of Deburr operation.
 * TestPathGeom: Test various functions available in the PathGeom module.
 * TestPathHelix: Test general functionality of Helix operation.
 * TestPathLog: Test various functions available in the PathLog debugging and feedback module.
 * TestPathOpTools:
 * TestPathPreferences: Test various functions available in the PathPreferences module.
 * TestPathPropertyBag:
 * TestPathSetupSheet:
 * TestPathStock:
 * TestPathThreadMilling:
 * TestPathTool:
 * TestPathToolBit:
 * TestPathToolController:
 * TestPathTooltable:
 * TestPathUtil: Test various functions available in the PathUtil module.
 * TestPathVcarve: Test general functionality of Vcarve operation.
 * TestPathVoronoi:

Workbench
Add test function

Menu
Add test function

Menu.MenuDeleteCases
Add test function

Menu.MenuCreateCases
Add test function

Scripting
FreeCAD Scripting Basics.

Get a list of all top-level test modules
Note that the test modules returned here depend on whether a GUI available or not. I.e. when executed in console mode, various tests ending in "Gui" are missing.

Run specific tests
There are various ways of running tests using Python's unittest library. FreeCAD's test framework removes some of the boiler plate for the most common cases.

Run all tests defined in a python module:

Run all tests defined in a python class:

Example 1
Within the Python Console of FreeCAD, the following code format may be used to run built-in tests. Replace the red "TestFem" text in the code below with the desired module test name.
 * For example, use "TestPathApp" to run all unit tests for the Path workbench unit test framework.
 * Submodules are available using dot notation, like "TestPathApp.TestPathAdaptive" to only run the Adaptive unit tests within the greater Path workbench test framework.
 * Multiple test modules or submodules may be combined by adding another `suite.addTest(...)` method call just like the one in the code below, but with a different module or submodule reference.
 * Output for the code below will be in the Report View panel within the FreeCAD GUI.
 * Code source is copied from post by FreeCAD forum user, sgrogan, in the unit tests per python topic, with credit there given to forum user, wmayer.

Forum Topics

 * Support for running specific unit tests with --run-test #331