2008-08-21 5 views
7

MSTest에서 hibernate.cfg.xml을 출력 디렉터리로 제대로 복사하는 데 경험이있는 사람이 있습니까? 내 모든 MSTests가 실패하여 hibernate.cfg.xml 오류 (필자는 항상 Copy로 설정 됨)를 찾을 수 없지만 MBUnit 테스트는 통과합니다.MSTest 및 NHibernate

답변

12

테스트 중 하나에 DeploymentItemAttribute를 추가하거나 .testrunconfig 파일을 편집하여 파일을 배포 목록에 추가 할 수 있습니다.

1

답변이 아닌 해결 방법 : NHibernate는 programmatic configuration을 지원합니다. 그래서 당신은 자신의 네이티브 프로퍼티/config 파일을 작성하고 시작할 때 최대 절전 모드 구성으로 파싱 할 수 있습니다.

2

몇 주 전 같은 일이있었습니다. 실제로 이것은 bug with MSTest입니다.이 소식은 최근 Service Pack Release으로 수정되었다고 생각합니다 (여전히 '활성'이라고 표시되어 있음에도 불구하고). 그렇지 않다면, 직접해야하는 것은 hibernate.cfg.xml을 직접 참조하는 것입니다. (테스트는 엉성한데 "TestResults"폴더에서 테스트 프로젝트의 hibernate.cfg.xml 파일을 참조하고 있습니다.)

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

내 NHibernate 구성 파일을 포함 리소스로 표시하고 어셈블리 리소스에서 구성 파일을 읽는 Configuration.Configure() 오버로드를 사용합니다.

4

(솔루션 항목 폴더에있는) localtestrun.testrunconfig를 편집하십시오. 배포 옵션을 선택하고 배치 할 추가 파일 목록에 hibernate.cfg.xml 파일을 추가하십시오. 그러면 파일이 테스트가 실행되는 출력 디렉토리에 복사됩니다.