2017-09-19 1 views
1

Go CD를 사용하여 회사의 워크 플로우에 지속적인 통합을 구현하는 방법을 배우려합니다. 내 소스 컨트롤에 GitHub를 사용하고 변경 사항이있을 때마다 리포지토리를 모니터링하고 변경을 시도하기 위해 파이프 라인을 설정하도록하십시오. 모두 잘 작동합니다. 이제는 파이프 라인에 단위 테스트를 추가하려고하는데 단위 테스트 프로젝트를 빌드 할 수 없습니다.솔루션을 빌드 할 때 GoCD에서 NuGet 패키지를 복원하는 방법

<exec command="%Windir%\Microsoft.NET\Framework64\v4.0.30319\MsBuild.exe" workingdir="UnitTest"> 
    <arg>/T:rebuild</arg> 
    <arg>/P:Configuration=Release</arg> 
    <arg>/m</arg> 
    <runif status="passed" /> 
</exec> 

이 내가지고있어 오류의 관련 부분입니다 :

내 빌드 명령에 대한 구성 XML입니다 누락 된 파일이

입니다 .. \ 패키지 \ MSTest.TestAdapter.1.1.18 \ build \ net45 \ MSTest.TestAdapter.props

단위 테스트 프로젝트는 일부 NuGet pa ckages이므로 제대로 빌드하려면이 파일이 필요하지만 GoCD의 작업 디렉토리에는 없습니다. NuGet 패키지를 오류 메시지에 지정된 위치로 복원하는 단위 테스트를 만들기 전에 파이프 라인에 작업을 추가했습니다. 나는 파이프 라인을 다시 실행하고 작업 디렉토리를 모니터링

<exec command="C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\ReadyRoll\Octopack\build\NuGet.exe" workingdir="UnitTest"> 
    <arg>restore</arg> 
    <arg>packages.config</arg> 
    <arg>-PackagesDirectory</arg> 
    <arg>..\packages</arg> 
    <runif status="passed" /> 
</exec> 

, 나는이 단계가 실행되는 "복원"때 NuGet 파일이 생성 된 걸보고하지만, 다음은 내 복원 덩어리 명령에 대한 구성 XML이다 단위 테스트 프로젝트를 작성하면 파일이 삭제되고 오류가 발생합니다.

나는/T : MSBuild 명령에서 다시 작성했기 때문에이 파일이 생각 났지만/T : build로 변경했을 때 여전히 파일을 삭제했습니다.

누구나 NuGet 패키지를 사용하여 프로젝트를 빌드하는 파이프 라인에 작업을 추가하는 방법에 대한 팁을 줄 수 있습니까? "NuGet.exe 복원"명령을 프로젝트 파일에 추가하는 방법에 대해 생각했지만 어떻게해야하는지 (또는 완료 할 수 있는지) 알아낼 수 없었습니다.

미리 감사드립니다.

답변

0

내가 잘못한 것을 알았습니다. 빌드를 설정하고 별도의 작업으로 명령을 복원하려면 동일한 작업에서 두 ​​작업을 모두 수행해야했습니다. 나는 그것을했고, 효과가 있었다.

GoCD가 각 작업의 소재를 확인하는 방법과 관련이 있다고 생각합니까? 그러나 저는이 점에 너무 익숙하지 않았기 때문에 (이유에 대해 옳지 않을 수도 있습니다), 왜이 변화로 인해 효과가 발생했는지 추측하지는 않을 것입니다.

이유를 아는 사람이 있으면 기꺼이 알 수 있습니다.

관련 문제