2012-10-23 6 views
0

sqlpackage.exe를 사용하여 단위 테스트를 실행하는 동적 데이터베이스를 만듭니다. 이 작업은 로컬에서 100 % 수행되지만 TFS에서는 수행되지 않습니다. 모든 유닛 테스트는 locahost \ sqlexpress에 통합 보안을 사용합니다. TFS는 임의로 sqlpackage.exe가 다음 오류를 반환하도록합니다.sqlpackage.exe "데이터베이스를 열 수 없습니다"임의로 발생합니다.

단위 테스트의 경우 here으로 설명한 패턴을 사용하고 있지만 nhibernate의 스키마 내보내기 기능과 반대되는 sqlpackage와 함께 dacpac을 사용하기 위해 일부 수정이 필요합니다.

sqlpackage error : *** Could not deploy package. 
sqlpackage error : Cannot open database "MessagesRepositoryTests" requested by the login. The login failed. 
sqlpackage error : Login failed for user 'DOMAIN\TFSService'. 

기타 (임의의) 오류에는 대상 모델 가져 오기에 실패했음을 나타내는 다른 줄이 있습니다.

sqlpackage error : *** Could not deploy package. 
sqlpackage error : Failed to import target model MessagesRepositoryTests. Detailed message Cannot open database "MessagesRepositoryTests" requested by the login. The login failed. 
sqlpackage error : Login failed for user 'DOMAIN\TFSService'. 
sqlpackage error : Cannot open database "MessagesRepositoryTests" requested by the login. The login failed. 
sqlpackage error : Login failed for user 'DOMAIN\TFSService'. 

"DOMAIN \ TFSService"에 모든 서버 역할 (sysadmin, public 등)이 부여되었습니다.

누구나 내 테스트를 통해 이것이 간헐적으로 나타나는 이유를 알 수 있습니까? 이것은 TFS 빌드 자동화 유닛 테스트에서만 발생합니다.

답변

0

실제 원인을 알 수는 없지만 빌드 프로세스 템플릿에서 "테스트 결과 삭제"디렉토리를 제거하면이 문제가 해결되었습니다. 로그/데이터 파일을 삭제 및 재 작성하는 디렉토리를 추가하는 디렉토리와 관련이 있어야합니다. 이후 C : \ 드라이브 바로 아래 폴더에 테스트 데이터베이스를 항상 저장하도록 코드를 변경했습니다.

관련 문제