:
여기처럼 내 출판사 중 하나가 모습입니다.
ccnet에서 nant 및 nunit을 호출하는 가장 좋은 방법은 무엇입니까? 현재 내가 원하지 않는 설정이 있습니다 :
ccnet with nant 작업이 있고 nant 빌드 파일은 msbuild 및 nunit2 작업을 사용하여 컴파일하고 테스트합니다.
ccnet, nant 및 nunit의 예를 찾기가 어렵지만 모두 함께 사용하는 가장 좋은 방법을 설명합니다. ccnet을 서비스로 실행하고 있는데 차이가 있습니까? 내가 할 수있는 한 간단하게하기 위해 노력하고있어,이 내가 뭘 대략 무엇 :
을 ccnet.config :
<target name="build" depends="clean">
<msbuild project="name.sln">
</msbuild>
</target>
<target name="test" depends="build">
<nunit2>
<formatter type="Xml" usefile="false" />
<test assemblyname="Tests\path\name.dll" />
</nunit2>
</target>
:
<tasks>
<nant>
<baseDirectory>D:\ccnet\builds\checkout\path</baseDirectory>
<buildFile>go.build</buildFile>
<targetList>
<target>test</target>
</targetList>
</nant>
</tasks>
<publishers>
<merge>
<files>
<file>D:\ccnet\builds\artifacts\path1\nant-results.xml</file>
<file>D:\ccnet\builds\checkout\path\name.dll-results.xml</file>
</files>
</merge>
<xmllogger />
</publishers>
그리고 go.build에서
대시 보드에서 빌드 로그를 확인하면 nant와 nunit의 xml 출력을 볼 수 있습니다. 그러나 이것은 대시 보드 자체에 표시되지 않습니다. 그 이유는 무엇입니까? 이것은 매우 초조하게 될 것입니다 ...
나는 자동 매직 ccnet 접근법 (그냥 usefile = "false"를 설정하고 ccnet이 그 일을하도록 두 가지 접근법을 시도했습니다). 이것은 작동하지 않았다.
수동 방법을 사용해도 usefile = "true"로 설정 한 다음 nant-results.xml 및 name.dll-results.xml 파일을 병합합니다 (와일드 카드를 사용하지 않고 파일의 정확한 경로 만 사용). 트리플 검사)
그냥 모든
NAnt에서 MsBuild를 호출하면 NAnt를 삭제하고 MSBuild를 직접 사용하는 것이 어떻습니까? cc.net에서 직접 MSBuild를 호출 할 수 있습니다. –
나는 그것을 잘못하고있을 수 있습니다 :) 그 아이디어는 ccnet에서 실행될 수있는 하나의 nant 스크립트를 가지고 있으며 또한 사전 체크인 스크립트와 동일한 스크립트를 실행할 수 있습니다 (아무도 확인하지 않도록 빌드를 망가뜨리는 물건에). 여전히 출력이 대시 보드에 표시되지 않는 이유를 설명하지 못합니다. –
내가 볼 수있는 한,이 페이지는은 Nant 출력이 기본적으로 렌더링 될 것이라고 말합니다 ("NAnt output in Xml"절 참조) "). 그러나 그것은 결과가 나오지 않을 때 무엇을해야하는지에 대해서는 말하지 않습니다. nunit2의 usefile = "false"속성을 사용하면 xml도 자동으로 구문 분석된다는 메시지가 표시되는 동일한 URL에 "NUnit and NAnt"섹션이 있습니다. 그러나 이것은 나에게도 일어나지 않습니다. –