TRẢ LỜI: Tôi chưa xóa các ConnectionPool của mình.Không thể Thả Cơ sở dữ liệu sau khi Kiểm tra Đơn vị
Kịch bản giải quyết là:
thiết lập:
- Kiểm tra xem cơ sở dữ liệu 'TEMP_NUnit' (SQL Server 2005) tồn tại trên trường hợp địa phương
- Nếu nó tồn tại, thả nó.
- Tạo cơ sở dữ liệu trống mới có tên 'TEMP_NUnit'.
Test:
- Khởi tạo các 'Cơ sở dữ liệu nâng cấp' thành phần.
- Kiểm tra xem các thuộc tính thiết yếu của thành phần có được đặt chính xác không.
- điểm thành phần tại các cơ sở dữ liệu trống và gọi .Upgrade()
- Kiểm tra xem việc nâng cấp thực sự làm việc
TearDown:
SqlConnection.ClearAllPools();
- Drop cơ sở dữ liệu 'TEMP_NUnit'.
Câu hỏi gốc nằm dưới màn hình đầu tiên.
Hi All
Kịch bản thử nghiệm là:
thiết lập:
- Kiểm tra xem cơ sở dữ liệu 'TEMP_NUnit' (SQL Server 2005) tồn tại trên trường hợp địa phương
- Nếu nó tồn tại, hãy thả nó.
- Tạo cơ sở dữ liệu trống mới có tên 'TEMP_NUnit'.
Test:
- Khởi tạo các 'Cơ sở dữ liệu nâng cấp' thành phần.
- Kiểm tra xem các thuộc tính thiết yếu của thành phần có được đặt chính xác không.
- điểm thành phần tại các cơ sở dữ liệu trống và gọi .Upgrade()
- Kiểm tra xem việc nâng cấp thực sự làm việc
TearDown:
- Drop cơ sở dữ liệu 'TEMP_NUnit'.
Mọi thứ sẽ ổn cho đến khi tôi đến giai đoạn TearDown. Tôi luôn luôn nhận được lỗi sau:
Cannot drop database "TEMP_NUnit" because it is currently in use.
này là khó hiểu với tôi, vì tôi đóng cửa (gọi một cách rõ ràng conn.Close trong cuối cùng báo cáo) và xử lý (thông qua sử dụng tuyên bố) tất cả các DbConnection của tôi đối tượng một cách chính xác. Không nên có bất cứ thứ gì chạy trên cơ sở dữ liệu "TEMP_NUnit" vào thời điểm TearDown xuất hiện.
Nếu tôi đóng NUnit và sau đó mở lại, bước 2 của Thiết lập luôn hoạt động đầu tiên.
Tôi không chắc mình đang làm gì sai ở đây. Bất kỳ con trỏ nào đi đúng hướng sẽ được đánh giá cao.
Bingo! Cảm ơn người đàn ông. –