2016-05-31 2 views
2

데이터베이스 통합 테스트 (MSTests)를 위해 MS SQL 서버와 함께 Entity Framework 6을 사용하고 있습니다.Visual Studio Team Services 빌드 정의 : 데이터베이스 연결 문자열 설정

Visual Studio Team Services (VSTS) 빌드 정의에서 테스트 어셈블리의 app.confing에 데이터베이스 연결 문자열을 설정하는 기본 제공 방법을 찾고 있습니다.

빌드 변수 또는 기타 기본 제공 방식을 사용하여 수행 할 수 있습니까? 고려

다른 옵션 (더 나은 방법을 찾기 위해 실패) :

  1. 새로운 빌드
  2. 의 app.config 변환과
  3. 구성 (SlowCheetah)
을 만들어 연결 정보를 얻기 위해 * .runsettings를 사용하여
+0

옵션 2에 대해 : 나는 SlowCheetah가 변환을 실행하는 데 필요하지 않다고 믿습니다. csproj를 수동으로 편집하고 TransformXml 태스크를 사용하여 작동시킬 수 있습니다. 여기 간단한 코드 샘플 [TransformXml Web.config 게시하는 동안] 발견했습니다 (http : // stackoverflow.co.kr/questions/10316108/transformxml-web-config-while-publishing) – AndrewSilver

답변

2

Replace Tokens 작업을 사용할 수 있습니다. 이렇게하면 설정 파일의 문자열을 빌드 정의의 변수로 바꿀 수 있습니다.

1

한 가지 방법은 토큰을 구현하기 위해 tokenization

을 사용하는 것입니다, 당신은이 두 가지 구현

  1. https://github.com/qetza/vsts-replacetokens-task#readme
  2. https://marketplace.visualstudio.com/items?itemName=ms-devlabs.utilitytasks

당신이 가서 결정하는 경우 중 하나를 사용할 수 있습니다 첫 번째 구현에서는 여기에 단계가 있습니다.

  1. https://marketplace.visualstudio.com/items?itemName=qetza.replacetokens로 이동 한 당신이 빌드 데프이 계정에 "토큰 교체"를 설치.

  2. 업데이트 응용 프로그램의 web.config 그

    를 ConnectionString = "# {MyToken} # 그래서 "

  3. 토큰 이름을 사용하여 빌드 정의에 새 변수를 추가하십시오. 확인이 값은

무엇이 일어날 것인가하는 빌드 단계는 빌드 정의에 지정된 변수 값을 가진 모든 .config 파일 토큰을 대체 할 것입니다

을 보호됩니다. 꽤 깔끔한.

이 작업이없는 상태에서 소스 코드 저장소에 대한 통합 테스트가 실패 할 가능성이 있습니다. 이것은 어떤 사람들에게는 짜증나지만, GIT를 사용하고 은닉을 사용하여 통합 테스트를 위해 토큰을 로컬로 오버라이드 (override)하면 쉽게 돌아 다니기 쉽습니다.

또한 방화벽 설정이있는 SQL 데이터베이스 (하늘색)가있는 경우 빌드 에이전트 가상 시스템이 인증되지 않아 통합 테스트가 실패 할 수 있으므로 새 규칙을 추가해야 할 수도 있습니다. 귀하의 빌드 에이전트가 승인되었습니다

관련 문제