私の前の質問とは対照的に、私は私の要件を与えようとします.
以下に適合するフレームワーク/方法論/「もの」を見つけようとしています:
- C# を使用して、できれば Visual Studio で作成された自動テストを作成する能力。
- テストは Web ブラウザーを駆動し、ユーザーと同じように SUT と対話する必要があります。
- テストでは、DB でテスト シナリオをセットアップできる必要があります。
- テストでは、ユーザー インタラクションが DB で期待される効果を発揮したことを確認できる必要があります。
- テストが完了すると、DB で行ったすべての変更をロールバックできるはずです。
私の最初の試みは、NUnit テストを使用して Selenium (およびその前に Watin) を駆動することでしたが、TransactionScope を使用して Selenium 駆動型ブラウザーが DB で行った変更をロールバックするときに、少し問題に直面しました (上記のリンクを確認してください)。
「現実の世界」でこのようなことをした人はいますか?Google で参考文献をいくつか見つけましたが、これを実装する方法に関する具体的な例を見つけることができませんでした。単体テストを行っていれば問題ありません。その場合、TransactionScope で十分です。
編集: R. Harvey がこの質問を指摘してくれましたが、これは私の状況とほぼ同じです。
ただし、その質問はほぼ同じです。私のアプリケーションは一連のサービスの一部であり、そのすべてが同じデータベース テーブルのセットにアクセスしています。必要なテスト データの量では、ドロップ/作成スクリプトを効率的に使用できません。これに対する代替ソリューションはありますか?
私たちは SQL Server 2005 を使用していますが、私はデータベース マジックにあまり精通していません。そのため、ドロップ/作成以外の SQL スクリプトを使用する方法があれば、それがオプションになる可能性があります。
編集2:
回答といくつかの追加のヘッド スクラッチに基づいて、開発者が単体テスト、統合テスト、および機能テストを実行するためのより軽量なデータベースを使用します。これにより、テストのセットアップと破棄に sql-scripts を使用できるようになります。