Difference between revisions of "Documentation/Nightly/Developers/QtTesting"
From Slicer Wiki
BenjaminLong (talk | contribs) |
BenjaminLong (talk | contribs) |
||
Line 41: | Line 41: | ||
==Create custom translator/player== | ==Create custom translator/player== | ||
+ | |||
+ | QTTesting provides us basic translator and player template. <br> | ||
+ | You can use the following command to create those basic files. | ||
cd Slicer_BINARY/CTK-build/QtTesting/Utilities/Scripts | cd Slicer_BINARY/CTK-build/QtTesting/Utilities/Scripts |
Revision as of 17:10, 24 May 2012
Home < Documentation < Nightly < Developers < QtTestingContents
Overview
Write a 3DSlicer UnitTest with QtTesting
1/ Create your XML script
See QtTesting User
If your tutorial needs data, please first add the data to the Sample Data module, and use this module during the test. See instruction xxxx here |
2/ Create a Python script
This Python test will start 3DSlicer and run your xml script previously recorded
Create a file with the following code
import slicer import slicer.testing import slicer.util filepath = os.environ['SLICER_HOME'] + 'path/to/your/script.xml' testUtility = slicer.app.testingUtility() success = testUtility.playTests(filepath) if success : slicer.util.exit(EXIT_SUCCESS) else: slicer.util.exit(EXIT_FAILURE)
Save to the directory ${Slicer_SOURCE_DIR}/Applications/SlicerApp/Testing/Python/
3/ Add the test in CMake
Edit the file Slicer4/Applications/SlicerApp/Testing/Python/CMakeLists.txt
Add your test at the end of the Slicer_USE_QTTESTING condition:
if(Slicer_USE_QTTESTING) { ... slicer_add_python_test( SCRIPT pythonScriptName.py SLICER_ARGS --launcher-no-splash --qt-testing) }
Create custom translator/player
QTTesting provides us basic translator and player template.
You can use the following command to create those basic files.
cd Slicer_BINARY/CTK-build/QtTesting/Utilities/Scripts ./TranslatorPlayerWizard.py yourClassName cd ../yourClassName/
4 files should have been created !
Those files are only the basic code. You now have to implement the function, according to your widget, to record the events |