- Messages sent by `qDebug`, `qWarning`, `qCritical` are captured and displayed when tests fail, similar to [pytest-catchlog](https://pypi.python.org/pypi/pytest-catchlog). Also, tests can be configured to automatically fail if an unexpected message is generated. (See [docs](http://pytest-qt.readthedocs.org/en/latest/logging.html)).
- New method `waitSignals`: will block untill **all** signals given are triggered, see [docs](http://pytest-qt.readthedocs.org/en/master/signals.html) (thanks The-Compiler for idea and complete PR).
- New parameter `raising` to `waitSignals` and `waitSignals`: when `True` (defaults to `False`) will raise a `qtbot.SignalTimeoutError` exception when timeout is reached, see [docs](http://pytest-qt.readthedocs.org/en/master/signals.html) (thanks again to The-Compiler for idea and complete PR).
- `pytest-qt` now requires `pytest` version >= 2.7.
Internal changes to improve memory management
- `QApplication.exit()` is no longer called at the end of the test session and the `QApplication` instance is not garbage collected anymore;
- `QtBot` no longer receives a QApplication as a parameter in the constructor, always referencing `QApplication.instance()` now; this avoids keeping an extra reference in the `qtbot` instances.
- `deleteLater` is called on widgets added in `QtBot.addWidget` at the end of each test;
- `QApplication.processEvents()` is called at the end of each test to make sure widgets are cleaned up;