問題タブ [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 投票する
1 に答える
632 参照

boost-test - Botan を使用した Boost Test および QtTest のメモリ アクセス違反

私はこれに苦労してきましたが、これまでのところうまくいきませんでした。ボタンを使用した単純なメインは正常に動作しますが、同じコードを単体テストに入れると失敗します。

--

次に、次のようにメイン エントリ ポイントに init を配置してみました。

どちらも同じエラーを示します。

1 つのテスト ケースを実行しています... 不明な場所 (0): "rsa_key_generation" で致命的なエラーが発生しました: アクセスできないデータを読み取ろうとしたときに、アドレス 0x00141000 でメモリ アクセス違反が発生しました

*** テスト スイート「cryptography test」で 1 つの障害が検出されました メモリ リークが検出されました! オブジェクトのダンプ -> {670} 0x0000000000221380 の通常ブロック、長さ 16 バイト。データ: 78 EA 13 00 00 00 00 00 00 00 00 00 00 00 00 00 オブジェクトのダンプが完了しました。

記録のために、私が試した圧縮の簡単なテストまたは私が行ったことはすべて正常に機能しますが、ボタンの初期化を使用してテストを作成しようとすると、何を試しても失敗します。


編集: Qt Test で試してみましたが、同じことが起こります。それは本当に奇妙です。誰もこのようなことを経験しましたか? 誰でもこれを再現できますか?

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

c++ - Qt: 複数のテスト クラスから単体テストを実行し、それらすべての出力を要約します。

Qt には が付属しており、公式のチュートリアルQTestなど、いくつかのドキュメントがあります。

ただし、QTest単体テストを個別の実行可能ファイルとして編成することをお勧めします。これには、次を生成する特別なマクロがありますmain()QTEST_MAIN()

正直なところ、私はこのアプローチが本当に嫌いです。一般に、最近の変更によって何も壊れていないことを確認するために、すべてのテストを一度に実行する方がはるかに便利です。場合によっては、一部のテストをマスクしたり、個別のテストを実行したりすると便利ですが、これは例外であり、規則ではありません。

そのため、すべてのテストを一度に実行したいと考えています。わかりました、次のmain()ように、必要なすべてのテストを実行する独自のテストを作成できます。

そして、すべてのテストを実行しますが、問題は、すべてのテストの便利な要約がないことです。上記の 2 つのテストについて、2 つの個別の要約があるとします。

エラーが発生した場合にゼロ以外が返されるという事実statusは確かに役立ちますが、要約もあればさらに役立ちます。

私が見るところ、それは不可能です: 成功、失敗、スキップ、およびブラックリストに登録されたテストの数をプログラムで取得する方法が見つかりません:qExec()は名前空間内の単なる関数であるQTestため、その後に追加情報を収集することは不可能です実行します。

出力文字列を解析することは可能ですが、うーん...

私には、それは悪いデザインのように見えます。QTestクラスとして作成し、そのインスタンスを作成して、それにいくつかのテスト クラスをフィードする方がおそらくはるかに優れているでしょう。次に、インスタンスからいくつかの追加情報を収集できます。

または、何かを見逃したのかもしれません。

問題はQTest、すべての単体テスト クラスの要約出力を取得することは可能かということです。

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

qt - Qt Quick の単体テスト

私は Qt と Qt Quick を初めて使用します。Qt Quick の Qt Test 単体テスト フレームワークを検証していますが、テストの実行方法を理解できません。これが私が持っているものです。次の構造の SUBDIRS プロジェクトを作成しました。

"Project" はテスト対象のアプリケーションで、私のテスト ケースは "ProjectTest/Resources/qml.qrc/tst_gui.qml" にあります。

tst_gui.qml:

シミュレートしたい「Project/Resources/qml.qrc/main.qml」に「click_button」というIDのボタンがあります。テスト プロジェクトを実行すると、次のメッセージで失敗します。

私は何か間違ったことをしていると確信しています。誰か助けてくれませんか?

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

c++ - Qt Test コマンド ライン オプション

私は Qt を初めて使用し、Qt テストの単体テスト フレームワークを検証中です。Qt5.5を使用しています。Qt マクロを使用してテスト ケースを作成し、Qt Creator から実行できますが、コマンド プロンプトから実行すると問題が発生します。具体的には、Qt Test が提供するログ オプションを使用できません。

これが私がやっていることです:

  1. Qt Creator を使用して Qt Test プロジェクトを作成しました
  2. Qt Creator を使用してプロジェクトをビルドする
  3. 実行可能ファイルは「project_directory/debug」フォルダーに作成されます
  4. デバッグ フォルダーからコマンド プロンプトを開く
  5. 次のコマンドを実行します。

QtTestValidation5.exe –xml
QtTestValidation5.exe -o results.txt、txt

  1. すべてのテストが実行されますが、フォルダには何も保存されません

テスト結果を xml、csv、およびテキスト ファイル形式で記録したいと考えています。誰か助けてくれませんか?

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

c++ - Qt test how to stop execution when a signal is emitted

I am currently testing a Qt application. I have to build a test to check the correct input and output of csv files.

Problem:

The data is being read asynchronously and my test program is ending before the data is loaded and this is the output i get.

Program flow:

There is a class AsyncLoader that loads the data. After the data read is finished, it emits a completed() signal.

So, I modified the test program to include an QEventLoop. The code is shown below

But with this, I get a "subprocess error: FailedToStart"

Is there a way to test an asynchronous unit?

I am using Qt version 5.4.2, QMake version 3.0