問題タブ [testcasesource]
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.
nunit - NUnit での TestCaseSource の遅延読み込み
TestCaseSource 関数を使用する NUnit テストがいくつかあります。残念ながら、必要な TestCaseSource 関数は初期化に時間がかかります。これは、フォルダー ツリーを再帰的にスキャンして、テスト関数に渡されるすべてのテスト イメージを見つけるためです。(または、実行するたびにファイル リスト XML から読み込むこともできますが、新しいイメージ ファイルの自動検出は引き続き必要です。)
ユーザーがノードをクリックするか、テスト スイートが実行されるまで、NUnit がテスト ケースを列挙しない (TestCaseSource 関数を呼び出さない) ように、TestCaseSource と共に NUnit 属性を指定することは可能ですか?
テスト プロジェクトにアクセスできない他のユーザーは、テスト プロジェクトのソース コードを変更することなく、新しいテスト イメージをフォルダーに追加する必要があるため、フォルダーに格納されているすべてのテスト イメージを取得する必要があることはプロジェクトの要件です。その後、テスト結果を表示できます。
一部の独断的な単体テスト担当者は、私が NUnit を使用して本来すべきではないことを行っていると反論するかもしれません。要件を満たす必要があることは認めざるを得ません。NUnit は、私の要件のほとんどを満たす優れた GUI を備えた非常に優れたツールであるため、適切な単体テストであるかどうかは気にしません。
追加情報(NUnit のドキュメントから)
オブジェクト構築に関する注意
NUnit は、テストのロード時にテスト ケースを見つけ、非静的ソースを使用して各クラスのインスタンスを作成し、実行するテストのリストを作成します。各ソース オブジェクトは、この時点で一度だけ作成され、すべてのテストが読み込まれた後に破棄されます。
データ ソースがテスト フィクスチャ自体にある場合、TestFixtureAttribute で提供されるフィクスチャ パラメーターの適切なコンストラクター、またはパラメーターが指定されていない場合は既定のコンストラクターを使用して、オブジェクトが作成されます。このオブジェクトはテストが実行される前に破棄されるため、これら 2 つのフェーズ間 (または異なる実行間) での通信は、パラメーター自体を介する場合を除いて不可能です。
テスト ケースを事前にロードする目的は、TestCaseSource とテストの実行の間の通信 (または副作用) を回避することのようです。これは本当ですか?これが、テスト ケースを事前にロードする必要がある唯一の理由ですか?
ノート:
http://blog.sponholtz.com/2012/02/late-binded-parameterized-tests-in.htmlに記載されているように、NUnit の変更が必要でした。
このオプションを NUnit の新しいバージョンに導入する計画があります。
nunit - 別のクラスにリファクタリングされたデータを含む NUnit テストケースソース
NUnit TestCaseSource pass value to factoryおよび How to pass dynamic objects into an NUnit TestCase function?と同じアプローチで動的データを使用してデータ駆動型テストを行うために、TestCaseSource 属性を持つ NUnit を使用しています。
いずれの場合も、IEnumerable < TestCaseData > を使用してデータを指定します。NUnit のドキュメント ( http://nunit.org/index.php?p=testCaseSource&r=2.5 ) から、これは TestCase と同じクラスの静的メンバーまたはインスタンス メンバーである必要があることがわかります。
同じ TestCaseSource 属性を使用したいので、これを別のクラスにリファクタリングしたいと思います。これが可能かどうか誰にもわかりますか?
c# - NUnitテストケースの生成:サブフォルダー(階層)を作成する方法は?
ファイル名に基づいてNUnitテストケースを生成しています。
ディレクトリは次のようになります。
TestCaseSourceを使用しています:
生成されたテストケースに階層を導入するにはどうすればよいですか?フォルダ構造に従ってグループに整理する必要があるので、[アカウント]にチェックマークを付けると、すべてのアカウントテストケースが選択されます。
testing - ユーザーインターフェイスが絶えず変化する場合、セレンでテストスクリプトを調整するにはどうすればよいですか?
最近問題が発生しました。私たちのチームは、Selenium を使用してテスト スクリプトを自動化しました。ユーザーインターフェースの変更依頼が来ましたので、cssを修正しました。
問題は、自動化されたテスト スクリプトが機能しないことです。これは css の変更によるものであることがわかっています。
私の質問は:
これらのシナリオを効果的に処理するための最良のアプローチは何ですか?
c# - NUnit TestCaseSource
TestCaseSource属性を試してみました。1つの問題:sourceName文字列が無効な場合、テストは失敗するのではなく無視されます。sourceメソッドの名前が変更され、sourceName文字列が更新されない場合、これは非常に悪いことです。その後、テストで提供されたカバレッジが失われます。sourceNameが無効な場合にテストが失敗するように、NUnitの動作を変更する方法はありますか?
nunit - テスト メソッドが実行されないのはなぜですか?
個別のテスト ケースごとに大量のデータを必要とするかなり複雑な統合テストがあります。
私のテストケースクラスは次のとおりです。
私のテストメソッドのヘッダーは次のとおりです。
テストを実行すると、決定的な結果が返されません。コードをステップ実行すると、MatchingCases プロパティの getter がアクセスされていることがわかり、yield return ステートメントは問題なく実行されますが、テスト メソッド自体は呼び出されません。
ほら、この質問を一度書いた後、テストクラスをtestfixtureスコープの外に移動しようとしました。私がそれをしたとき、コードは一度実行されたので、質問を捨てました. その後、実行が停止しました...
テスト メソッドが呼び出されないのはなぜですか?
編集:質問を予想する-これらは使用されているサポートクラスです:
更新 - 翌日
Visual Studio を閉じて再読み込みし、何も変更せずにテストを再実行すると、テスト コードが繰り返し実行されます。これは一時的な不具合だったのではないかと疑い始めています。
c# - N ユニットの TestCaseSource
私はいくつかの N ユニット テストを書いていますが、少し問題があります。コード内でTest を に接続しようとしてTestCaseSource
いますが、オブジェクトが正しく構築されていないようです。
これが私のテスト方法です:
そして私のTestCaseSource
:
これは主に概念実証として機能するため、複雑なオブジェクトを使用して実際のテストを作成するときに、上記のようなループを作成してオブジェクトにランダムな値を入れるだけでよいことがわかります。ただし、TestCaseStuff
テスト メソッドに返されるすべてのインスタンスは同じです。
アップデート:
下の答えは正しいです。それを N-UnitsTestCaseData
オブジェクトに渡すとき、(誤って) そのインスタンスを単に値渡しすると想定していました。どうやら、それは参照によって行われるため、値は常に同じでした。
その上、Random
クラスを間違って使用していました。普段は扱っていないのですが、ちゃんと読み込めませんでした。以下のリンクで説明されているように、Random
デフォルトのコンストラクターで使用する場合、シード値はシステム クロックから派生します。その結果、複数のRandom
オブジェクトを立て続けにインスタンス化すると、それらは同じデフォルトのシード値を共有し、同じ値を生成します。
したがって、これらの開発の結果、私のコードは次のようになります。
android - すでに利用可能な Android 用のテストケース
Android junit で使用できるオープン ソースのテスト ケース コードはありますか。たとえば、Android メディア プレーヤー、コンテンツ プロバイダーなどのテスト ケースはありますか? Google で検索しましたが、関連するリンクが見つかりません。現在テスト ケースを使用してテストしていますが、テスト ケースが既に利用可能かどうかを知りたいです。それらも再利用する予定です。
testing - SpecFlow-NUnits TestCaseSourceプロパティのようなデータ駆動型テストを使用するにはどうすればよいですか?
私は、いくつかの検討の結果、テスト自動化にSpecFlowを使用することを決定したQAです。すばらしいと思いますが、NUnitなどの他のテストランナーで頻繁に使用した機能が1つ欠けています。これは、実行時に実行されるテストの潜在的に動的なデータセットを指定するNUnitのTestCaseSourceプロパティに似ています。
テストを実行する環境ごとに異なるデータを使用することが多いため、テストパラメータにハードコードされた値を指定することはできません。簡単な例は、各タイプのユーザーアカウントがログインできることを確認することです。ユーザーアカウントの資格情報は、DBクエリを使用して取得し、NUnitで各テストケースに動的に入力できます。
明らかにこれはその機能の簡単な例ですが、十分に説明されていると思います。SpecFlowには、シナリオの概要とテスト実行の入力データのテーブルを使用する機能があることは知っていますが、それでも静的であるため、法案に適合しません。
私はしばらく探していましたが、SpecFlowでこのようなものはまだ見つかりませんでしたが、使用できる(またはプロジェクトに携わっている人がこれを読んだ場合に計画されている)上記のようなものを知っている人はいますか?
ありがとう :)
nunit - nunit と TestCaseSource および TestCaseData を使用して複雑な行テストをセットアップする
2 や 4 のような戻り値を期待するたびに、この値を単体テスト メソッドのパラメーターとして渡したいと思います。しかし、パラメーターが正しくないという例外が発生します。countExpected パラメータを削除すると、単体テストは正常に実行されますが、countExpected をアサートできません...
このシナリオは NUnit でまったく可能ですか?