問題タブ [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.
c++ - QTestLib で単体テストを書く
これは、単体テストの世界への私の最初のステップですので、しばらくお待ちください。Qt 4.8.1 C++ プログラムを作成しており、テスト フレームワークとして統合された QTestLib を使用しています。基本ファイルから継承し、特定の XML ファイルを読み込んで、set/get 関数を介して取得および設定できる xml 値を持つ C++ クラス オブジェクトを返す関数を使用して、後でそのファイルを読み込んで解析するクラスをテストする必要があります。コンストラクターのクラスは QFile オブジェクトをインスタンス化し、readXml 関数でそれを使用して QXmlStreamReader でファイルを解析します。このすべてのクラスを単体テストでテストする最良の方法は何ですか? ファイルの内容を表す独自の文字列を挿入するために、ファイルの読み取り操作をバイパスする方法がわかりません。または、別のアドホック XML ファイルをテスト コンテンツとして使用する必要がありますか?
c++ - QTestLibを使用した単体テスト
QtアプリケーションをQTestLibで単体テストしようとしています。新しいVisualStudio2012にはC++テストフレームワークが組み込まれており、そのためにグーグルで検索します。このページでは、ネイティブプロジェクトをテストするためのさまざまな方法について説明しています。通常のプログラム用とテスト用の2つの異なるプロジェクトがあります。実際、私のアプリケーションはDLLではありませんが、単純なC++exeです。別のプロジェクトでテストして、.objファイルまたはlibsに対してリンクするのが最善の方法ですか?私はDLLではないので、ソースコードから何もエクスポートしません
qt - QTestLibでQtアプリの単体テストをしながらプロジェクトを構築する方法
Qt プロジェクトを取得し、Qt Creator を使用しています。すべてのコードを単体テストしたい。
ただし、私は QTestLib フレームワークの初心者ですが、Qt ベースのソースのテストには誰もが推奨しています。今、アプリプロジェクトでテストプロジェクトを構成する方法が少し混乱しています。
- すべてのソース コードとテスト コードを同じプロジェクトに入れることはできますか? もしそうなら、どうすればそれらを管理できますか?1 つのプロジェクトでアプリを起動したり、テストを開始したりするためのオプションが見つかりませんでした。
- アプリのソースとテスト コードを別のプロジェクトに配置すると、テスト プロジェクトがアプリ プロジェクトを参照することになり、あまり便利ではありません。
- テストが必要なクラスのロットについて、テスト コードをどのように管理すればよいですか?
このような状況でコードのテストをどのように管理していますか? ありがとう。
qt - q誤ったターゲット生成を行う
次のような.proファイルがあります。
ただし、生成されるmakefileには次のターゲットがあります。
したがって、gccはライブラリを生成します。ただし、.proファイルで指定されているとおりに実行可能ファイルを作成する必要があります。
なぜこの厄介なことが起こっているのか分かりませんか?どんなポインタでも大歓迎です。
ありがとうございました
PSこれは、qtestlibフレームワークを使用した単体テストの.proファイルです。
qt - QTest単体テストからQTableViewセルを編集するにはどうすればよいですか?
QTestLib フレームワークを使用して、QTableView でカスタム Validator の単体テストを作成しています。最も基本的なテスト ケースの 1 つは、次のように記述できます。
3 列目と 4 行目の表のセルをダブルクリックし、その内容に数字「5」を追加します。
モデルの値などを単に変更するだけでは十分ではありません。テスト ケースは次のように実行する必要があります。
- 表のセルをダブルクリックして編集モードにします
- [終了]キーを押します。
- [5]キーを押します。
注:この質問には、コードからテーブル セルを編集モードに設定する方法に関する回答がありますが、単体テストでは、人間のユーザーの可能性、つまりマウス/キーボード アクションに固執しようとします。
QTableView::columnViewportPosition( int )とQTableView::rowViewportPosition( int )を使用して、セルの X/Y 位置を取得できることがわかりました。ただし、QTest::mouseDClick(...)を使用して指定された場所をダブルクリックしても、セルは選択されず、編集モードにも設定されません。
マウス/キーボード アクションのみを使用して、上記で説明したテスト ケースを実装するにはどうすればよいですか?
PS: Windows XP 32 ビットおよび Qt 4.6.1 でこれを試しています。
qt - JenkinsxUnitプラグインを使用したQTestlibの結果の表示
QtユニットテストプロジェクトにJenkinsxUnitプラグインを使用しようとしていますが、機能させることができません...
これが私がこれまでにしたことです:
まず、qmakebuilderプラグイン(qmakebuilderプラグインに.proを提供)を使用して単体テストプロジェクトをビルドし、次にExecute Shell
ビルドセクションを追加して、最初rm -f
にtestResult xmlファイルを追加し、続いてテストを実行しますフラグ付きのバイナリで-xunitxml
xmlファイルを生成します。xmlファイルに名前を付けます。言い換えると、次のようになりますtestResult.xml
。
最後に、ビルド後のアクションでPublish xUnit test result
、パターンを選択して指定します*.xml
。
ただし、ジョブのビルドは失敗します。Jenkinsでジョブをビルドしたときに得られる出力は次のとおりです。
ご覧のとおり、テスト結果のxmlファイルをxUnitプラグインが読み取れるものに変換する際に問題が発生します。testResult.xmlファイルは次のようになります。
ただしTEST--735044756.xml
、1行のxmlファイルです。<?xml version="1.0" encoding="UTF-8"?>
誰かが私が何を間違っているのか手がかりを持っていますか?出力xmlファイルの生成に問題があるはずです。
別の注意点として、システムログのJenkinsメニューにlogthingiを追加しましたが、この問題の理由ではないようです...少なくともIMO
qt - QCompareの未定義のシンボル
QTestLibを使用してテストを作成すると、qCompare
関数の「未定義のシンボル」エラーが発生します。
c++ - QFETCH の「'qt_metatype_id' という名前のメンバーはありません」
QTestLib テスト クラスに次の行を追加しました。
テスト クラスをコンパイルしようとすると、次のエラーが発生します。
qt - 例外がスローされたことをQTestで確認する方法は?
私はQT C++の世界で述べています。QTest クラスを使用して TDD を実行しています。特定の条件下で、テスト対象のクラスによって例外がスローされることを確認したいと考えています。Google テストを使用して、次のようなものを使用します。
QTestにこの機能のようなものはありますか? 少なくともそれを行う方法はありますか?
ありがとう!