1

ASP.Net MVC プロジェクトがあり、MS Test や NUnit などのツールを使用してコントローラー層からデータベースまでの回帰テストを実行できると考えていましたが、テストが順番に実行されるように設計されていないという問題に遭遇しました ( MS Test で順序付けされたテストを使用できますが、テストは引き続き同時に実行されます)、もう 1 つの問題は、あるテストから作成されたデータを別のテストからアクセスできるようにする方法です。

私はSeleniumとWatiNを見てきましたが、UIレイヤーに依存しないものを書きたかっただけで、テストを維持するための作業量が増加する可能性が最も高い.

助言がありますか?それは仕事のための間違ったツールですか?Selenium/WatiN を使用する必要がありますか?

4

3 に答える 3

0

WatiN、そして Selenium では注文の問題は解決しないと思います。私は UI の自動化に WatiN と NUnit を使用していますが、実行順序は保証されていません。最初は、あなたが見ているものと同様の問題を引き起こしました。

dskh が答えたことの流れで、独立したテストが必要です。私は、統合/回帰ブラックっぽいボックス テストのために 2 つの方法でこれを行いました。

最初に: テストのセットアップで、既知の「良好な状態」になるように、前提条件データ値をセットアップします。システム回帰テストの自動化のために、データを既知の状態にリセットするために呼び出されるデータベース スクリプトをいくつか用意しました。これにより、いくつかの依存関係が追加されるため、設計を意識してください。注: 単純な単体テストでは、モック オブジェクトを使用して依存関係を取り除き、テストを "1 つのことをテストする" ようにすることを検討してください。オブジェクトのモック、メソッド呼び出しのスタブなどは、可能であれば行く方法です。これは、質問に基づいて可能性が高いと思われます。

2番目: 特定のものを特定の方法で絶対にセットアップする必要があり、セットアップをテストするためにそれらをスクリプト化すると、必要なシステム内部の知識が途方もなく追加された場合 (例: すべてのユーザーのセットアップ + すべての権限のセットアップ + など) 少数システムをブートストラップするために、NUnit を介して簡単に実行できるように、独自の名前空間で「ブートストラップ」テストがセットアップされました。テストの数を少なく保ち、テストが非常に安定していることを確認することが最も重要でした。現在、新規インストールでは、ブートストラップ テストが最初に実行され、高度なスモーク テストとして機能します。ブートストラップ テストのいずれかが失敗した場合、それ以上のテストは実行されません。いくつかの点で不格好ですが、代替手段はより不格好であるか、時間/リソース/その他の消費量が多くなりました.

于 2012-04-03T15:17:14.740 に答える
0

実行順序が問題にならないように、テストは常に互いに独立している必要があります。テストが他のテストに依存している場合、テストしているものを制御できなくなります。

于 2012-04-03T11:26:05.777 に答える