最初のオプションは、テスト結果を XML 形式で stdout に出力する必要があります。自分のライブラリでテストしたところ、動作します。連結された複数の XML ドキュメントを出力しますが、これはおそらく、複数のテストを手動で実行する非標準main()
を使用しているためであり、それらのそれぞれに対して 1 つの XML ドキュメントが生成されるようです。
-o results.txt,txt
2 番目のものはおそらく間違っています: (スペースなし) のはずです。私と同じように機能しますが、最後のテストのみを記述します。繰り返しますが、これはおそらく、いくつかのテストを手動で実行しているためです。そのため、それぞれが前のテストを上書きし、最後のテストしか表示されません。すべてのテストを保存したい場合は、-xml
or-txt
を使用して形式を指定し、標準出力にリダイレクトする必要があります。
qztest.exe -xml > results.xml
これは機能しますが、1 つのファイルに複数の連結されたドキュメントをまだ取得しています。
-csv
オプションは機能しませんが、Qtのドキュメントはこう言います
このモードは、通常の合格/不合格メッセージを抑制するため、ベンチマークにのみ適しています。
そして、私にはベンチマークがありません。
引数が私にとってうまくいく理由については、ここに私のmain()
:
int main(int argc, char **argv)
{
QCoreApplication app(argc, argv);
int err = 0;
{
TestQuaZip testQuaZip;
err = qMax(err, QTest::qExec(&testQuaZip, app.arguments()));
}
{
TestQuaZipFile testQuaZipFile;
err = qMax(err, QTest::qExec(&testQuaZipFile, app.arguments()));
}
// And so on, and so on...
if (err == 0) {
qDebug("All tests executed successfully");
} else {
qWarning("There were errors in some of the tests above.");
}
return err;
}
非常に重要な -を作成しQCoreApplication
、引数を手動で に渡しますQText::qExec
。Qt Creator でプロジェクトを作成したので、main()
. Qt Creator が何かを正しく初期化していない可能性があります。引数が機能するためには、テスト コードがこれらの引数に実際にアクセスできる必要があることを忘れないでください。したがって、それらを明示的に渡すか、少なくともアプリケーションを初期化して、コードがQCoreApplication::instance()->arguments()
内部的に何かを実行できるようにする必要があります。