我的代码是
class ExampleTest : public QObject
{
Q_OBJECT
public:
ExampleTest() {}
private Q_SLOTS:
void DoAllExampleTests();
};
void ExampleTest::DoAllExampleTests()
{
QProcess p;
p.start( "cmd /c wmic path Win32_usbcontrollerdevice|grep VID_1004" );
qDebug() << "Here 1";
QVERIFY( TRUE == p.waitForFinished() );
qDebug() << "Here 2";
}
QTEST_APPLESS_MAIN(ExampleTest);
我在Here 1和Here 2之间收到了一个警告。
QObject::startTimer: Timers can only be used with threads started with QThread
我从QObject :: startTimer:Timers can only be used with threads started with QThread这篇文章中学到,当我子类化一个Qt类且子类的某个成员不是Qt层次结构的一部分时,会发生此警告。我有一个从QObject继承的ExampleTest类,但仍然收到警告。如何避免此警告?
make check TESTARGS="-platform offscreen"
运行 QTest,并从 .pro 项目文件中删除 QtCreator 为您放置的QT -= gui
行。如果您正在使用 SUBDIRS 样式的单元测试项目,则需要将所有子项目更改为 QTEST_MAIN,以应对-platform
命令行参数。 - Mark Ch