私はプロジェクトのテスト環境で作業しており、DbUnit.NETを使用して多くのデータベース対話テストを行っています。DbUnit複数のテストが同時に実行されるのを防ぐ方法を教えてください。
私たちはOracleに対して実行しており、開発者ごとに別々のテストDBインスタンスを設定することは実際には不可能です(特に、DBAが1人しかいないため) 。これは、すべての開発者とContinuous Integrationサーバーがすべて同じDBスキーマを使用する必要があることを意味します。
質問:1人以上の人が同時にテストするのを防ぐ良い方法はありますか?テストが実行されていることを示すレコードをdbテーブルに格納しておき、テストが終了したら削除しますが、NUnitはテストセッションの開始時と終了時に何かを実行する方法がありません。
他の考えはありますか?それはかなり一般的な問題であるように思われる...または誰もがテストを実行する可能性のあるすべての開発者/テスターのために実際に別々のDBインスタンスを実行していますか?
これは基本的に私がやると思ったものです。私の大きな問題は、たくさんのレガシーpl/sql(かなりの10k行以上)を処理していて、ほぼすべてのテーブルでトリガしており、現在はすべてテストされていないということです。だから私はOracleとそのトリガとsprocsを通過する必要があります。そうでなければ、メモリ内のSQLite DBなどを試してみたいと思います。 – CodingWithSpike