問題タブ [qttest]

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 投票する
11 に答える
37137 参照

unit-testing - Qtにはどのユニットテストフレームワークを使用する必要がありますか?

クロスプラットフォームのGUIを必要とする新しいプロジェクトを立ち上げたばかりで、GUIフレームワークとしてQtを選択しました。

ユニットテストのフレームワークも必要です。約1年前まで、C ++プロジェクトには社内で開発された単体テストフレームワークを使用していましたが、現在は新しいプロジェクトにGoogleTestを使用するように移行しています。

QtアプリケーションにGoogleTestを使用した経験のある人はいますか?QtTest / QTestLibはより良い代替手段ですか?

プロジェクトのGUI以外の部分でQtをどれだけ使用したいかはまだわかりません。おそらく、QtベースのGUIへの小さなインターフェイスを備えたコアコードでSTL/Boostを使用することをお勧めします。

編集:多くの人がQtTestに傾いているようです。これを継続的インテグレーションサーバーと統合した経験のある人はいますか?また、新しいテストケースごとに個別のアプリケーションを処理する必要があると、多くの摩擦が発生するように思われます。それを解決する良い方法はありますか?Qt Creatorにはそのようなテストケースを処理する良い方法がありますか、それともテストケースごとにプロジェクトを用意する必要がありますか?

0 投票する
4 に答える
13159 参照

qt - QtのQTestLibモジュールを使用したテスト

Qtのユニットテストシステムでいくつかのテストを書き始めました。

通常、どのようにテストを整理しますか?1つのモジュールクラスごとに1つのテストクラスですか、それとも1つのテストクラスでモジュール全体をテストしますか?Qtドキュメントは、前者の戦略に従うことを提案しています。

モジュールのテストを書きたい。このモジュールは、モジュールユーザーが使用するクラスを1つだけ提供しますが、他のクラスには多くのロジックが抽象化されており、パブリッククラスのテスト以外にもテストしたいと思います。

問題は、Qtが提案したテストの実行方法にQTEST_MAINマクロが含まれていることです。

そして最終的には、1つのテストプログラムで1つのテストクラスだけをテストできます。そして、モジュール内のすべてのクラスのテストプロジェクトを作成するのはちょっと面倒です。

もちろん、QTEST_MAINマクロを見て、それを書き直して、他のテストクラスを実行することもできます。しかし、箱から出してすぐに機能する何かがありますか?

これまでのところ、私は手作業でそれを行っています:

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

qt - QTest::keyPress が nativeScanCode を返さない

QTest::keyPress() メソッドを使用して F1 キーをシミュレートし、キープレス イベントをテストしています。nativeScanCode をチェックするときに F1 キーをシミュレートすると、値 0 が返されます。誰でも助けることができますか?

ありがとう、

ヴェルス

0 投票する
4 に答える
8426 参照

qt-creator - QtCreator から qtestlib 単体テストを実行する方法

Qt Creator で GUI アプリケーションを開発しており、ユニット テストを作成したいと考えています。

このガイドに従って、QtTestlib でいくつかの単体テストを作成すると、プログラムは正常にコンパイルされます。しかし、どうすればそれらを実行できますか? デバッグ ビルドの場合は GUI アプリが起動する前に実行し、リリース ビルドの場合は実行しないようにしたいと思います。

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

qt - CMake で Qt テストをビルドする

CmakeでビルドしてCTestで実行したQTテストコードとCMakeLists.txtの例を教えてください。見つからないようです!

-カーティス

0 投票する
4 に答える
3293 参照

c++ - 単一のテスト プロジェクトを使用しながら、すべての QtTestLib 単体テストの結果を単一のファイルにまとめる方法は?

私たちのプロジェクトでは、単体テストに QtTestLib を使用しています。その理由は、可能な限りプロジェクト全体ですでに Qt を使用しており、Qt は GUI アプリケーションであるため、GUI インターフェイスをテストする機能が必要だったからです。

私たちのプロジェクトは MSVC によってコンパイルされているため、ソリューションが乱雑になるため、テストごとに個別のプロジェクト ファイルを用意する必要はありませんでした。したがって、すべてのテストに対して単一のプロジェクトを作成しました。すべてのテストは CIS (継続的インテグレーション) で自動化する必要があるため、いくつかの XSLT 変換を使用して、XML 形式の出力ファイルを介して Hudson にテストをプラグインしようとしました。

しかし、テストの出力に問題があるようです。すべてのテストに単一の main() を使用し、コマンドライン引数を各テストに送信するだけの場合:

その後、複数回書き換えられた結果ファイルが得られます。したがって、出力ファイル (xml など) を使用して多少自動化したい場合は、最後の結果のみが得られます。他のすべては上書きされます。

そのアプローチはすでに試しましたが、Hudson のような継続的インテグレーション システムを使用することはできません。だから私の質問は: 1 つの出力ファイルに結果を追加する機会はありますか? もちろん、パラメータを変更して QTest::qExec() で各テストを実行し、結果を別々のファイルに書き込むなどのいくつかの回避策を使用できますが、最善の方法ではないようです。理想的には、CIS で使用する単一の結果ファイルが必要です。

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

c++ - QTest forC++で各テストケースはどのくらい消費しますか

QT Test Framework for C ++の各テストケースにかかる時間を知る簡単な方法はありますか?

いくつかのメトリックを取得するのに非常に役立ちます。

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

c++ - QtTest単体テスト、別のプロジェクトにあるヘッダーファイルを追加する方法は?

何かが足りないのかもしれませんが、QtTest フレームワーク用に提供されている唯一のチュートリアルで QString クラスをテストしているのは本当にばかげているように思えます。

単体テストの典型的なユースケースは....自分で書いたクラスをテストすることですが、チュートリアルでテストするために別のプロジェクトでクラスを参照する方法については言及されておらず、Googleも私を失敗させました(そして私は本当に疑っています)クラスをコピーして貼り付けるのが良い方法です)。

私は、QtTest について言及していない 3 冊の異なる Qt 本をざっと読んでみました。

0 投票する
4 に答える
13107 参照

qt - QTestLibでQtアプリの単体テストをしながらプロジェクトを構築する方法

Qt プロジェクトを取得し、Qt Creator を使用しています。すべてのコードを単体テストしたい。
ただし、私は QTestLib フレームワークの初心者ですが、Qt ベースのソースのテストには誰もが推奨しています。今、アプリプロジェクトでテストプロジェクトを構成する方法が少し混乱しています。

  1. すべてのソース コードとテスト コードを同じプロジェクトに入れることはできますか? もしそうなら、どうすればそれらを管理できますか?1 つのプロジェクトでアプリを起動したり、テストを開始したりするためのオプションが見つかりませんでした。
  2. アプリのソースとテスト コードを別のプロジェクトに配置すると、テスト プロジェクトがアプリ プロジェクトを参照することになり、あまり便利ではありません。
  3. テストが必要なクラスのロットについて、テスト コードをどのように管理すればよいですか?

このような状況でコードのテストをどのように管理していますか? ありがとう。

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

qt - QtCreator サブディレクトリ プロジェクト

subdirs テンプレートに基づいて、QtCreator プロジェクトで次の階層を実現します。

計画:

  • subproject1 - 静的ライブラリ
  • subproject2 - 静的ライブラリ
  • subproject3 - unittests 実行可能ファイル

唯一の実行可能ファイルは subproject3 にあり、これは subproject1 と subproject 2 にリンクします。

ただし、ビルドは正常に機能しますが、ユーザビリティの問題に気付きました。プロジェクト全体を実行すると、ライブラリで実行可能ファイルを見つけようとしますが、失敗します。メインプロジェクトの代わりに subproject3 を実行する必要があります。そのような状況を回避することは可能ですか?