2009-07-30 8 views
3

Ich versuche, PartCover.NET mit NAnt und CruiseControl.NET zu integrieren Ich kann PartCover.NET-Browser ohne Probleme ausführen, aber es funktioniert nicht, sobald ich versuche, es in einem NAnt-Task auszuführen (in meinem CCNET-Build).Integration von PartCover.NET mit NAnt

Es muss ein Problem mit meinem NAnt-Ziel geben, aber ich kann es nicht finden. Vielleicht hatte jemand in der Vergangenheit die gleichen Probleme erlebt?

<target name="CoverageUnitTest" description="Code coverage of unit tests"> 
    <exec program="${PartCover.exe}"> 
     <arg value="--target=${NUnit.console}" /> 
     <arg value="--target-work-dir=${project.dir}\bin\${configuration}"/> 
     <arg value="--target-args=${project}.dll" /> 
     <arg value="--output=C:\partcover.xml" /> 
     <arg value="--include=[*]*" /> 
    </exec> 
</target> 

In CruiseControl- bekam ich die folgende Fehlermeldung: [exec] Ungültige Option '--target C: \ NUnit \ bin \ nunit-console.exe'

Build Error: NAnt.Core.BuildException 
External Program Failed: C:\PartCover\PartCover.exe (return code was -1) 
in C:\default.build line: 20 col: 4 

    at NAnt.Core.Tasks.ExternalProgramBase.ExecuteTask() 
    at NAnt.Core.Tasks.ExecTask.ExecuteTask() 
    at NAnt.Core.Task.Execute() 
    at NAnt.Core.Target.Execute() 
    at NAnt.Core.Project.Execute(String targetName, Boolean forceDependencies) 
    at NAnt.Core.Project.Execute() 
    at NAnt.Core.Project.Run() 

Dank! David

+0

Ich habe die Antworten gefunden, wie man es dank dem folgenden Blogpost integrieren kann. http://blog.dynamicprogrammer.com/CategoryView,category,ContinuousIntegration.aspx – davandries

Antwort

0

Ersetzen = mit Leerzeichen und verwenden Sie die & quot; Marker um die Parameter für die Argumente

+0

Wie Sie dieses Problem gelöst haben .. Ich erhalte diesen Fehler. Ich habe versucht, das oben genannte zu verwenden. aber ich erhalte den Fehler Kann Ziel nicht finden (nunit-console.exe). Ich habe die Konfiguration in der NANT wie folgt hinzugefügt nimi

+0

Stellen Sie sicher, dass Sie den Speicherort von Nunit-console.exe im Pfad auf der Maschine, die Sie ausführen das Skript an. –

5

Wie Sie vielleicht bemerkt haben, ist diese Aufgabe ziemlich kompliziert. Es brachte mich an den Rand des Wahnsinns, aber schließlich brachte ich es zum Laufen. Hier

einige allgemeine Hinweise:

  • Verwendung Partcover-Version 2.2 statt 2.3, da diese eine Entwickler-Version ist, die instabil zu sein scheint.

  • Denken Sie daran, PartCover.CorDriver.dll zu registrieren.

  • Argumente übergeben ist der schwierigste Teil, wenn Sie Pfade angeben müssen. Ich entschied mich schließlich, eine Konfigurationsdatei zu verwenden und sie über --settings weiterzugeben.

+0

mit " davandries

+0

(+1) Register ist ein grundlegender Punkt, der Fehler don Ich gebe keinen Hinweis darauf. – Custodio