2008-08-21 29 views
7

Có ai có kinh nghiệm lấy MSTest để sao chép hibernate.cfg.xml đúng vào thư mục đầu ra không? Tất cả các MST của tôi thất bại với một không thể tìm thấy lỗi hibernate.cfg.xml (tôi đã thiết lập để Copy Always), nhưng các kiểm tra MBUnit của tôi vượt qua.MSTest và NHibernate

Trả lời

12

Bạn có thể thử thêm DeploymentItemAttribute vào một trong các thử nghiệm của mình hoặc chỉnh sửa tệp .testrunconfig và thêm tệp vào danh sách Triển khai.

1

giải pháp thay vì trả lời: NHibernate hỗ trợ programmatic configuration. vì vậy bạn có thể viết thuộc tính native/config file và phân tích nó thành các cấu hình ngủ đông khi khởi động.

2

Chạy vào cùng một điều cách đây vài tuần - đây thực sự là một số bug with MSTest - Tôi tin rằng điều này đã được sửa với Service Pack Release gần đây (mặc dù nó vẫn hiển thị "Đang hoạt động"). Nếu không, tất cả những gì tôi phải làm là tham chiếu trực tiếp tệp hibernate.cfg.xml của mình (cẩu thả nhưng hoạt động để thử nghiệm - đây là tham chiếu tệp hibernate.cfg.xml trong dự án kiểm tra của tôi từ thư mục "TestResults"):

try 
      { 
       sessionFactory = new Configuration() 
        .Configure() 
        .BuildSessionFactory(); 
      } 
      // Assume we are in "MSTest mode" 
      catch (Exception) 
      { 
       sessionFactory = new Configuration() 
        .Configure(@"..\..\..\Program.Tests\" + @"\hibernate.cfg.xml") 
        .BuildSessionFactory(); 
      } 
1

Tôi thích đánh dấu các tệp cấu hình NHibernate của mình là Tài nguyên đã nhúng và sử dụng quá tải Configuration.Configure() đọc tệp cấu hình từ Tài nguyên hội.

4

Chỉnh sửa localtestrun.testrunconfig (trong thư mục các mục giải pháp của bạn). Chọn tùy chọn triển khai và thêm tệp hibernate.cfg.xml vào danh sách các tệp bổ sung để triển khai. Tệp sau đó sẽ được sao chép vào thư mục đầu ra nơi thử nghiệm được chạy.