QTest#
The QTest namespace contains all the functions and declarations that are related to Qt Test. More…
Synopsis#
Static functions#
def
addColumnInternal
(id, name)def
asciiToKey
(ascii)def
compare_ptr_helper
(t1, t2, actual, expected, file, line)def
compare_ptr_helper
(t1, t2, actual, expected, file, line)def
compare_string_helper
(t1, t2, actual, expected, file, line)def
currentAppName
()def
currentDataTag
()def
currentTestFailed
()def
currentTestFunction
()def
failOnWarning
(message)def
failOnWarning
(messagePattern)def
formatString
(prefix, suffix, numArguments)def
ignoreMessage
(type, message)def
ignoreMessage
(type, messagePattern)def
keyToAscii
(key)def
qCaught
(expected, what, file, line)def
qCleanup
()def
qElementData
(elementName, metaTypeId)def
qExpectFail
(dataIndex, comment, mode, file, line)def
qExtractTestData
(dirName)def
qFindTestData
(basepath[, file=None[, line=0[, builddir=None[, sourcedir=None]]]])def
qFindTestData
(basepath[, file=None[, line=0[, builddir=None[, sourcedir=None]]]])def
qGlobalData
(tagName, typeId)def
qRun
()def
qSkip
(message, file, line)def
qSleep
(ms)def
qWait
(ms)def
setBenchmarkResult
(result, metric)def
setMainSourcePath
(file[, builddir=None])def
testObject
()def
toPrettyCString
(unicode, length)
Detailed Description#
See the Qt Test Overview for information about how to write unit tests.
- PySide6.QtTest.QTest.TestFailMode#
This enum describes the modes for handling a check, such as by QVERIFY()
or QCOMPARE()
macros, that is known to fail. The mode applies regardless of whether the check fails or succeeds.
Constant
Description
QTest.Abort
Aborts the execution of the test. Use this mode when it doesn’t make sense to execute the test any further after the problematic check.
QTest.Continue
Continues execution of the test after the problematic check.
See also
QEXPECT_FAIL()
- PySide6.QtTest.QTest.QBenchmarkMetric#
This enum lists all the things that can be benchmarked.
Constant
Description
QTest.FramesPerSecond
Frames per second
QTest.BitsPerSecond
Bits per second
QTest.BytesPerSecond
Bytes per second
QTest.WalltimeMilliseconds
Clock time in milliseconds
QTest.WalltimeNanoseconds
Clock time in nanoseconds
QTest.BytesAllocated
Memory usage in bytes
QTest.Events
Event count
QTest.CPUTicks
CPU time
QTest.CPUMigrations
Process migrations between CPUs
QTest.CPUCycles
CPU cycles
QTest.RefCPUCycles
Reference CPU cycles
QTest.BusCycles
Bus cycles
QTest.StalledCycles
Cycles stalled
QTest.InstructionReads
Instruction reads
QTest.Instructions
Instructions executed
QTest.BranchInstructions
Branch-type instructions
QTest.BranchMisses
Branch instructions that were mispredicted
QTest.CacheReferences
Cache accesses of any type
QTest.CacheMisses
Cache misses of any type
QTest.CacheReads
Cache reads / loads
QTest.CacheReadMisses
Cache read / load misses
QTest.CacheWrites
Cache writes / stores
QTest.CacheWriteMisses
Cache write / store misses
QTest.CachePrefetches
Cache prefetches
QTest.CachePrefetchMisses
Cache prefetch misses
QTest.ContextSwitches
Context switches
QTest.PageFaults
Page faults of any type
QTest.MinorPageFaults
Minor page faults
QTest.MajorPageFaults
Major page faults
QTest.AlignmentFaults
Faults caused due to misalignment
QTest.EmulationFaults
Faults that needed software emulation
Note that WalltimeNanoseconds
and BytesAllocated
are only provided for use via setBenchmarkResult()
, and results in those metrics are not able to be provided automatically by the QTest framework.
See also
benchmarkMetricName()
benchmarkMetricUnit()
New in version 4.7.
- static PySide6.QtTest.QTest.addColumnInternal(id, name)#
- Parameters
id – int
name – str
- static PySide6.QtTest.QTest.compare_ptr_helper(t1, t2, actual, expected, file, line)#
- Parameters
actual – str
expected – str
file – str
line – int
- Return type
bool
- static PySide6.QtTest.QTest.compare_ptr_helper(t1, t2, actual, expected, file, line)
- Parameters
t1 –
void
t2 –
void
actual – str
expected – str
file – str
line – int
- Return type
bool
- static PySide6.QtTest.QTest.compare_string_helper(t1, t2, actual, expected, file, line)#
- Parameters
t1 – str
t2 – str
actual – str
expected – str
file – str
line – int
- Return type
bool
- static PySide6.QtTest.QTest.currentAppName()#
- Return type
str
Returns the name of the binary that is currently executed.
- static PySide6.QtTest.QTest.currentDataTag()#
- Return type
str
Returns the name of the current test data. If the test doesn’t have any assigned testdata, the function returns 0.
- static PySide6.QtTest.QTest.currentTestFailed()#
- Return type
bool
Returns true
if the current test function failed, otherwise false.
- static PySide6.QtTest.QTest.currentTestFunction()#
- Return type
str
Returns the name of the test function that is currently executed.
Example:
def cleanup(self): if qstrcmp(QTest.currentTestFunction(), "myDatabaseTest") == 0: # clean up all database connections closeAllDatabases()
- static PySide6.QtTest.QTest.failOnWarning(messagePattern)#
- Parameters
messagePattern –
PySide6.QtCore.QRegularExpression
Appends a test failure to the test log for each warning that matches messagePattern
.
The test function will continue execution when a failure is added. To abort the test instead, you can check currentTestFailed()
and return early if it’s true
.
For each warning, the first pattern that matches will cause a failure, and the remaining patterns will be ignored.
All patterns are cleared at the end of each test function.
void FileTest::loadFiles() { QTest::failOnWarning(QRegularExpression("^Failed to load")); // Each of these will cause a test failure: qWarning() << "Failed to load image"; qWarning() << "Failed to load video"; }
To fail every test that triggers a given warning, pass a suitable regular expression to this function in init() :
void FileTest::init() { QTest::failOnWarning(QRegularExpression(".?")); }
Note
ignoreMessage()
takes precedence over this function, so any warnings that match a pattern given to both ignoreMessage()
and failOnWarning()
will be ignored.
See also
- static PySide6.QtTest.QTest.failOnWarning(message)
- Parameters
message – str
This function overloads failOnWarning()
.
Appends a test failure to the test log if the message
is output.
See also
- static PySide6.QtTest.QTest.formatString(prefix, suffix, numArguments)#
- Parameters
prefix – str
suffix – str
numArguments – int
- Return type
char
- static PySide6.QtTest.QTest.ignoreMessage(type, messagePattern)#
- Parameters
type –
QtMsgType
messagePattern –
PySide6.QtCore.QRegularExpression
This is an overloaded function.
Ignores messages created by qDebug()
, qInfo()
or qWarning()
. If the message matching messagePattern
with the corresponding type
is outputted, it will be removed from the test log. If the test finished and the message was not outputted, a test failure is appended to the test log.
Note
Invoking this function will only ignore one message. If the message you want to ignore is output twice, you have to call ignoreMessage()
twice, too.
- static PySide6.QtTest.QTest.ignoreMessage(type, message)
- Parameters
type –
QtMsgType
message – str
Ignores messages created by qDebug()
, qInfo()
or qWarning()
. If the message
with the corresponding type
is outputted, it will be removed from the test log. If the test finished and the message
was not outputted, a test failure is appended to the test log.
Note
Invoking this function will only ignore one message. If the message you want to ignore is output twice, you have to call ignoreMessage() twice, too.
Example:
dir = QDir() QTest.ignoreMessage(QtWarningMsg, "QDir.mkdir: Empty or null file name(s)") dir.mkdir("")
The example above tests that mkdir()
outputs the right warning when invoked with an invalid file name.
- static PySide6.QtTest.QTest.qCaught(expected, what, file, line)#
- Parameters
expected – str
what – str
file – str
line – int
- static PySide6.QtTest.QTest.qCleanup()#
- static PySide6.QtTest.QTest.qElementData(elementName, metaTypeId)#
- Parameters
elementName – str
metaTypeId – int
- Return type
void
- static PySide6.QtTest.QTest.qExpectFail(dataIndex, comment, mode, file, line)#
- Parameters
dataIndex – str
comment – str
mode –
TestFailMode
file – str
line – int
- Return type
bool
- static PySide6.QtTest.QTest.qExtractTestData(dirName)#
- Parameters
dirName – str
- Return type
QSharedPointer
Extracts a directory from resources to disk. The content is extracted recursively to a temporary folder. The extracted content is removed automatically once the last reference to the return value goes out of scope.
dirName
is the name of the directory to extract from resources.
Returns the temporary directory where the data was extracted or null in case of errors.
- static PySide6.QtTest.QTest.qFindTestData(basepath[, file=None[, line=0[, builddir=None[, sourcedir=None]]]])#
- Parameters
basepath – str
file – str
line – int
builddir – str
sourcedir – str
- Return type
str
- static PySide6.QtTest.QTest.qFindTestData(basepath[, file=None[, line=0[, builddir=None[, sourcedir=None]]]])
- Parameters
basepath – str
file – str
line – int
builddir – str
sourcedir – str
- Return type
str
- static PySide6.QtTest.QTest.qGlobalData(tagName, typeId)#
- Parameters
tagName – str
typeId – int
- Return type
void
- static PySide6.QtTest.QTest.qRun()#
- Return type
int
- static PySide6.QtTest.QTest.qSkip(message, file, line)#
- Parameters
message – str
file – str
line – int
- static PySide6.QtTest.QTest.qSleep(ms)#
- Parameters
ms – int
Sleeps for ms
milliseconds, blocking execution of the test. qSleep() will not do any event processing and leave your test unresponsive. Network communication might time out while sleeping. Use qWait()
to do non-blocking sleeping.
ms
must be greater than 0.
Note
The qSleep() function calls either nanosleep()
on unix or Sleep()
on windows, so the accuracy of time spent in qSleep() depends on the operating system.
Example:
QTest.qSleep(250)See also
- static PySide6.QtTest.QTest.qWait(ms)#
- Parameters
ms – int
Waits for ms
milliseconds. While waiting, events will be processed and your test will stay responsive to user interface events or network communication.
Example:
i = 0 while myNetworkServerNotResponding() and i++ < 50: QTest.qWait(250)
The code above will wait until the network server is responding for a maximum of about 12.5 seconds.
- static PySide6.QtTest.QTest.setBenchmarkResult(result, metric)#
- Parameters
result – float
metric –
QBenchmarkMetric
Sets the benchmark result for this test function to result
.
Use this function if you want to report benchmark results without using the QBENCHMARK macro. Use metric
to specify how Qt Test should interpret the results.
The context for the result will be the test function name and any data tag from the _data function. This function can only be called once in each test function, subsequent calls will replace the earlier reported results.
Note that the -iterations command line argument has no effect on test functions without the QBENCHMARK macro.
- static PySide6.QtTest.QTest.setMainSourcePath(file[, builddir=None])#
- Parameters
file – str
builddir – str
- static PySide6.QtTest.QTest.testObject()#
- Return type
- static PySide6.QtTest.QTest.toPrettyCString(unicode, length)#
- Parameters
unicode – str
length –
qsizetype
- Return type
char