Saya memiliki server CI (Hudson) yang dengan riang membangun, menjalankan tes unit dan menyebarkan ke lingkungan pengembangan, tetapi sekarang saya ingin membuatnya menjalankan tes integrasi.
Tes integrasi akan mengenai basis data dan basis data tersebut akan secara konsisten diubah untuk berisi data yang relevan dengan pengujian yang dimaksud. Namun ini mengarah ke masalah - bagaimana saya memastikan database tidak disebarkan dengan data untuk satu tes dan kemudian data tersebut ditimpa oleh proyek kedua sebelum set tes pertama selesai?
Saya saat ini menggunakan metode "harapan", yang tidak bekerja terlalu buruk saat ini, tetapi sebagian besar karena kenyataan bahwa kami hanya memiliki sejumlah kecil tes integrasi yang diatur pada CI.
Seperti yang saya lihat, saya memiliki opsi berikut:
- Basis data uji-lokal (dalam memori)
Saya tidak yakin apakah ada basis data di dalam memori yang menangani semua ketakutan pemicu dan paket Oracle, dll, dan apa pun yang kurang saya rasa tidak akan bernilai saat pengujian. - Basis data pelaksana CI-lokal
Sejumlah pekerjaan yang wajar diperlukan untuk mengatur ini dan tetap mengikuti perkembangannya, tetapi merupakan pilihan (sebagian besar pekerjaan sudah dilakukan untuk menjaga agar basis data CI saat ini tetap mutakhir). - Eksekutor "uji integrasi" tunggal
Kemungkinan yang paling mudah untuk diterapkan, tetapi akan berarti tes integrasi bisa jauh di belakang. - Mengunci basis data (atau set tabel)
Saya yakin saya telah melewatkan beberapa cara (tolong tambahkan mereka). Bagaimana Anda menjalankan tes integrasi berbasis database di server CI? Masalah apa yang Anda miliki dan metode apa yang Anda rekomendasikan? (Catatan: Saat saya menggunakan Hudson, saya senang menerima jawaban untuk server CI apa pun, ide-ide yang saya yakin akan portabel, meskipun detailnya tidak).
Cheers,
Mlk