問題タブ [qtestlib]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
3 に答える
976 参照

c++ - open-source-project の c++ 単体テスト サンプル

「実世界」での C++ 単体テストについて学ぶことに興味があります。優れたテスト カバレッジを備えた複雑なクラスを見たいと思います。できればg-testまたはqtestlibでテストしてください。KDE と Chromium を調べましたが、必要なものが見つかりませんでした。

0 投票する
2 に答える
2012 参照

c++ - QSignalSpy はスレッドでは使用できません

ワーカー オブジェクトを実行するスレッドを作成しました。すべて正常に動作します。また、結果の信号は、必要に応じて送信されます。もちろん、スレッドとオブジェクトのアフィニティに関するよくある間違いには対処しました。

今日、私はこれらのワーカー/スレッドの自動モジュール テストを作成しました。次のように、(スレッドに移動された) ワーカー オブジェクトによって発行されるシグナルを待機する QSignalSpy を作成しました。

マークされた行でよく知られているエラーが発生しています。

最初に、wait() の一部のコードが間違ったスレッドで実行されたため、エラーが発生することが予想されました。次に、QSignalSpy の実装で次のコードを見つけました。

これは明らかに、QSignalSpy が常に DirectConnection を使用し、異なるスレッドに存在するオブジェクトのシグナルを監視するために使用できないことを意味します。

なぜQt5.3でそのようにプログラムしたのですか? それは間違いですか、それとも意図した動作ですか? この制限を回避するにはどうすればよいですか?

0 投票する
1 に答える
492 参照

c++ - Qt Unit Test は、Qt 4.8 の Qt Creator のアプリケーション出力ペインですべてを 2 回繰り返します (ただし、Qt 5.2.2 ではそうではありません)。

新鮮な新しいプロジェクトでも、Qt Unit Test はアプリケーション出力ペインにすべてを 2 回、異なる色で (最初はマゼンタで、次に黒で) 書き込むことに気付きました。これは、stdout と stderr の両方に書き込むためだと思います。

これはQt 4.8 では発生しますが、Qt 5.2.2 では発生しません。Qt 5.2.2 では、黒いテキストのみが印刷されます。

例として、このテストのみを含む単体テスト プロジェクトの場合:

出力は次のとおりです(色が表示されるようにスクリーンショットを使用します):

ここに画像の説明を入力

この動作をオフにする方法はありますか? Qt4のバグですか?

0 投票する
1 に答える
346 参照

c++ - QBENCHMARK に複数の反復を実行させる

を使用して複数の反復を実行するにはどうすればよいQBENCHMARKですか?

たとえば、次のコードがあります。

ドキュメントを見たところ、次のように書かれています。

QBENCHMARK マクロ内のコードが測定され、正確な測定値を取得するために数回繰り返されることもあります。これは、選択した測定バックエンドによって異なります。

デフォルトの と を試しました-tickcounterが、どちらも 1 回の繰り返ししか表示されません。

デフォルト (引数なし):

-tickcounter:

他の 2 つは機能しません - -callgrindLinux 専用-eventcounterですが、単体テストが終了するようです。

QBENCHMARKでは、複数の反復を行う方法はありますか?

0 投票する
1 に答える
551 参照

c++ - ネイティブ QFileDialog にアクセスする

Qt アプリケーションの ui テストを書いています。このアプリケーションは、自動的に入力してコミットする必要がある QFileDialog を発生させます。

モーダル ダイアログが表示されている場合でも実行される QTimer が既にあります。このアプローチは、QMessageBox や QColorDialog などの多くのダイアログで機能します。

問題は、QFileDialog がネイティブ ダイアログであることです。ダイアログウィジェットがないため、検索できません。

ネイティブ ダイアログにアクセスする方法はありますか。

私はUbuntuで開発しているので、GTKダイアログだと思います。テストは常に Ubuntu で実行されます。

0 投票する
1 に答える
1157 参照

qtestlib - qtest: テストのコンパイル時にターゲットをエラーにするルールがありません

私は単体テストの作成に取り組んできました。GUIオブジェクトをテストするには、これを学ぶ必要があります。これまでのところ、このサイトは多くの質問に回答しています (ほとんどは以前に質問され、回答されています)。ただし、現在エラーが発生しており、解決に役立つリンクが見つかりません。「「TestGui.o」が必要とするターゲット「TestGui.cpp」を作成するルールがありません。停止」というメッセージが表示されます。これを修正してテストをコンパイルする方法を教えてもらえますか? これは私のテストの最初の試みです...

これは私のテストファイルです-

私のtest.proファイルはここにあります -

これは私のプロジェクト .pro ファイルです -

私のプロジェクトの .pri ファイルには、私のプロジェクトのソースとヘッダーがあります -