2

정기적으로 저장소 코드를 작성하고 솔루션에 포함 된 테스트를 실행하려면 CruiseControl .net을 구성하려고합니다. svn 서버 및 건물 부분에서 검색 코드를 구성했습니다. 그러나 나는 그것에 대한 테스트를 수행 할 수 없습니다. MSBuild는 계속 불평하고 있습니다.단위 테스트를 실행하는 MSBuild

오류 MSB4057 : 대상 "테스트"가 프로젝트에 없습니다.

같은 오류가 있는지 확인하기 위해 명령 줄을 통해 테스트를 실행 해 보았습니다. 내가 사용 : MSBuild.exe를 TestProject.csproj/t :

<tasks> 
    <msbuild> 
     <executable>C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe</executable> 
     <workingDirectory>C:\WorkingDir\build\MainProject</workingDirectory>     
     <projectFile>MainProject.csproj</projectFile> 
     <buildArgs>/noconsolelogger /p:Configuration=Debug /v:diag</buildArgs> 
     <targets>Build</targets> 
     <timeout>900</timeout> 
     <logger>C:\Program Files (x86)\CruiseControl.NET\server\ThoughtWorks.CruiseControl.MSBuild.dll</logger> 
    </msbuild> 
    <msbuild> 
     <executable>C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe</executable> 
     <workingDirectory>C:\WorkingDir\build\TestProject</workingDirectory>     
     <projectFile>TestProject.csproj</projectFile> 
     <buildArgs>/noconsolelogger /p:Configuration=Debug /v:diag</buildArgs> 
     <targets>Test</targets> 
     <timeout>900</timeout> 
     <logger>C:\Program Files (x86)\CruiseControl.NET\server\ThoughtWorks.CruiseControl.MSBuild.dll</logger> 
    </msbuild> 
    </tasks> 

내가 올바른 방향으로 어떤 힌트를 부탁드립니다 : 테스트

내 구성이 같은 것입니다.

답변

3

당신이 사용하고있는 테스트 프레임 워크를 설명하지 않았으니 꽤 중요한 부분입니다.

MSTest의 경우이 호출 내용은 part of TFS입니다. 러너 항목은 Visual Studio의 일부이므로 MSTest를 실행하는 작업은 .NET Framework의 일부인 MSBuild에 포함될 수 없습니다. MSTEST 힘이 [2010 년의 부분 집합] 비주얼 스튜디오가 빌드 서버에 설치하는 것이 왜 (그 주제에 주변에 좋은 몇 가지 질문이 있습니다)] NUnit를 들어

For xUnit.net, people do stuff like this

는 작업이있다 그 파일 목록을 제공 할 수 있습니다.

결론 - 사용자 지정 테스트 대상을 .csproj 파일에 추가하면 테스트 러너를 호출하기위한 중요한 MSBuild 래퍼 작업이 트리거됩니다.

+0

죄송합니다. 네, 테스트 프로젝트의 유형은 MSTest입니다 (VS 2010 사용). 나는 그것이 빌드 서버에 Visual Studio가 설치되어 있지 않으면 테스트를 실행할 수 없다는 것을 의미합니다. 주위에 해결 방법이 있습니까? 나는 빌드 서버에 Visual Studio 설치를하는 것은 목적을 저버린 것 같지 않니? – shake

+0

2010 년에는 독립 실행 형 MSTest 빌드 서버 설치 관리자가 될 예정이었습니다 (이 문제가 발생했는지는 확실하지 않습니다. 사용자가 해결할 수 있고 대답에 대해 의견을 말하면 좋을 것입니다 ...) http : // stackoverflow를 참조하십시오. com/questions/954943/how-to-use-mstest-in-continous-integration-without-vs/954979 # 954979 및 http://stackoverflow.com/questions/1062994/running-mstest-exe-publish-on- a-teambuild-server-what-are-the-requrequisites (하지만 2010 년을 사용한다면 당신은 말할 수 없습니다.) MSTest는 개구리 상자만큼이나 화가났습니다 - 이처럼 광기의 결과로 저 주위에서 제게 xUnit.net 시일 검사를 많이 볼 수 있습니다! –

+0

그래, VS 2010을 사용하고있다. 결국 nunit으로 전환했다. Visual Studio 테스트 에디션의 테스터 버전을 설치하는 옵션이 있었지만 nunit이 더 쉬워 보였습니다. 그리고 놀랍게도 MSTest에서 쉽게 마이그레이션 할 수 있습니다. 당신의 도움에 감사합니다 – shake

관련 문제