問題タブ [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 に答える
3275 参照

c++ - QTcpClient は正常に接続しますが、サーバーには接続しません。どこに接続されていますか?

Qt の Tcp Sockets API を使用して、シン クライアント/サーバーを正常に構築しました。大量のデータをネットワーク経由で送信して検証したので、非常にうまく機能することはわかっています。しかし、私のプロジェクト マネージャーは一連の単体テストを望んでおり、Qt のテスト ライブラリを使用してそれらを実装しています。

とにかく、単体テストで sendData() メソッドを検証するために QTcpSocket からデータを受信するだけのダミーサーバーをセットアップしようとしています。テストソケットを接続すると、接続されていることが示されますが、ダミーサーバーとそのダミーソケットを接続するためのスロットは呼び出されません!

ここで私が間違っていることを誰かが見ることができますか? (テストクラスで壊れているように見える部分だけにコードを削除しました)

tst_tcpcommsocket.h から

tst_tcpcommsocket.cpp から

テスト実行の出力:

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

qt - QTestLib: ターゲット = アプリのテストに関する問題

単体テスト プロジェクトの依存関係に問題があります。

私のプロジェクト構造は次のとおりです。

MyProject.pro:

src.pro:

ClassA が ClassA.cpp で ClassB を呼び出すとします。

ここで、ClassA の単体テストを行います。私はそうする2つの方法を見つけました。まず、src-Subproject をライブラリに変換します (TARGET = src.pro の lib)。次に、次の行を tests.pro に追加すると、すべて問題ありません。

2 つ目は、test.pro で ClassA によって使用されるすべてのファイルに名前を付けることです。これは、tests.pro が次のようになることを意味します。

最初の解決策 (src-project を lib に変換する) を使用できないため、2 番目の解決策を使用する必要があります。それらの 1 つだけをテストしたい場合でも、すべてのソース/ヘッダーに名前を付ける必要がありますか? アドバイスありがとうございます!

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

unit-testing - QTestLib-非定数参照引数の検証

現在、を使用して、アプリケーションの単体テストスイートを構築していますQTestLib。これは一般的に非常に簡単ですが、「return」引数を検証する方法に固執しています。たとえば、関数がある場合:

withinBoundsこの関数は、セグメント距離分析の有界状態を割り当てます。QCOMPARE/QVERIFYマクロにその状態を分析させるにはどうすればよいですか?

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

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

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

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

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

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

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

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

c++ - QTestLib 単体テスト フレームワーク + Gmock (QTCPServer の作成 - モック オブジェクト)

Qt の QTestLib 単体テスト フレームワーク + GMOck を使用しています。

単体テストで QTcpSocket から VerifySendData() メソッドへのデータを単純に受信するために、gMock を使用してモック サーバーをセットアップしようとしています。

誰かがモックオブジェクトgMOCKを作成する方法の例を教えてくれたら(EXPECT CALL、モックオブジェクトを作成する)

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

c++ - QTest で QTableView エディションをテストするにはどうすればよいですか?

QTest で QTableView のセルの編集をシミュレートしたいと思います。

私は別のアプローチを試みましたが、成功しませんでした:

また、3つのアプローチを追加しましたが、成功しませんでした

ご協力いただきありがとうございます。

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

qtestlib - QListWidget での QTest::mouseClick の問題

QTest を使用していくつかのテストを実行しようとしています。クリックして選択したい QListWidget があります。しかし、クリックした後、何も選択されていません。誰にもアイデアはありますか?

ここに私のテストクラスがあります

以下はテストクラスです

そして、ここに問題を表示するために使用される TestDialog クラスがあります

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

unit-testing - テスト失敗時に QTestLib/QTest から情報を取得する方法

QTestLib ライブラリと QTest を使用して単体テストを実行しています。私は Windows 7 で作業しており、MVSC 2010 コンパイラで Qt 4.8 を使用しています。次を使用してテストを実行すると:

コンソールに出力が表示されます。

ただし、私の要件は、テスト スロットごとに GUI にこのメッセージを表示することです。いくつかの調査を行ったところ、qtestlog.cppは独自の messageHandler を使用してテスト出力を管理し、結果を PASS または FAIL として失敗メッセージ、行番号などとともに表示することがわかりました。QTest のこの messageHandler を処理する方法はありますか?私のGUIアプリケーション?

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

qt - QTest: ドラッグ&ドロップのテストは可能ですか?

単純なシーケンスでドラッグ アンド ドロップをテストしようとしています: mousePress + mouseMove + mouseRelease。しかし、それは仕事ではありません。

qtest ソースを調査したところ、メイン ディスパッチャ processEvent() を介して移動イベントがテストされていることがわかりました。また、qt bug-tracker でいくつかのバグを見つけました: 12

そのため、最新の安定した Qt4 でドラッグ アンド ドロップをテストすることはできないと思います。これで成功した人はいますか?

0 投票する
0 に答える
630 参照

qt - 単体テスト (QTestLib) で QDeclarativeScriptString を設定しようとしています

2D ゲーム フレームワーク(QML 拡張機能) の一部のベンチマークを作成しようとしていますが、QOBject の宣言型スクリプト プロパティを設定する際に問題が発生しています。

プロパティ宣言:

そして、スクリプトを変更しようとする私の試みの1つは、次のようなものです。

しかし、うまくいきません (ベンチマークを実行しますが、コンソールには何も書き込まないでください)。

setProperty を使用して QDeclarativeScriptString を手動で作成し、プロパティを設定しようとしましたが、何も機能しません。

QDeclarativeScriptString を作成しようとすると、失敗します。

コード:

出力:

何か助けはありますか?

ありがとう