QTest#

The QTest namespace contains all the functions and declarations that are related to Qt Test. More

Synopsis#

Static functions#

Note

This documentation may contain snippets that were automatically translated from C++ to Python. We always welcome contributions to the snippet translation. If you see an issue with the translation, you can also let us know by creating a ticket on https:/bugreports.qt.io/projects/PYSIDE

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.ComparisonOperation#

New in version 6.4.

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.asciiToKey(ascii)#
Parameters:

ascii – int

Return type:

Key

static PySide6.QtTest.QTest.compare_ptr_helper(t1, t2, actual, expected, file, line)#
Parameters:
Return type:

bool

static PySide6.QtTest.QTest.compare_ptr_helper(t1, t2, actual, expected, file, line)
Parameters:
  • t1void

  • t2void

  • 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 None.

static PySide6.QtTest.QTest.currentTestFailed()#
Return type:

bool

Returns true if the current test function has failed, otherwise false.

static PySide6.QtTest.QTest.currentTestFunction()#
Return type:

str

Warning

This section contains snippets that were automatically translated from C++ to Python and may contain errors.

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.currentTestResolved()#
Return type:

bool

Returns true if the current test function has failed or skipped.

This applies if the test has failed or exercised a skip. When it is true, the test function should return early. In particular, the QTRY_* macros and the test event loop terminate their loops early if executed during the test function (but not its cleanup()). After a test has called a helper function that uses this module’s macros, it can use this function to test whether to return early.

static PySide6.QtTest.QTest.failOnWarning(messagePattern)#
Parameters:

messagePatternPySide6.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

QTEST_FATAL_FAIL

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

failOnWarning()

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:

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:
  • typeQtMsgType

  • message – str

Warning

This section contains snippets that were automatically translated from C++ to Python and may contain errors.

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 QDir::mkdir() outputs the right warning when invoked with an invalid file name.

static PySide6.QtTest.QTest.keyToAscii(key)#
Parameters:

keyKey

Return type:

int

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

  • modeTestFailMode

  • 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

Warning

This section contains snippets that were automatically translated from C++ to Python and may contain errors.

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

Starting from Qt 6.7, this function is implemented using std::this_thread::sleep_for, so the accuracy of time spent depends on the Standard Library implementation. Before Qt 6.7 this function called either nanosleep() on Unix or Sleep() on Windows, so the accuracy of time spent in this function depended on the operating system.

Example:

QTest.qSleep(250)

See also

qWait()

static PySide6.QtTest.QTest.qWait(ms)#
Parameters:

ms – int

Warning

This section contains snippets that were automatically translated from C++ to Python and may contain errors.

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.

See also

qSleep() wait()

static PySide6.QtTest.QTest.runningTest()#
Return type:

bool

static PySide6.QtTest.QTest.setBenchmarkResult(result, metric)#
Parameters:

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:

PySide6.QtCore.QObject

static PySide6.QtTest.QTest.toPrettyCString(unicode, length)#
Parameters:
  • unicode – str

  • length – int

Return type:

char