2013-10-16 20 views
2

J'essaie d'utiliser les rapports HTML générés par mes tests unitaires pour les afficher dans le tableau de bord de CruiseControl.NET, mais je ne sais pas où je le vois. J'ai mon rapport généré dans le "CCNetWorkingDirectory". Dans mon fichier "CCNet.config" j'utilise le File Merge Task pour copier le rapport dans mon "CCNetArtifactDirectory". C'est l'étape qui ne fonctionne pas. Je l'ai essayé de différentes façons. J'ai:Impossible de faire fonctionner HtmlReportPlugin dans CruiseControl.NET

<publishers> 
    <merge> 
     <files> 
      <file> 
       Index.html 
      </file> 
      <file action="Copy"> 
       rep\Index.html 
      </file> 
     </files> 
    </merge> 
    <xmllogger/> 
</publishers> 

Quels devraient être les chemins dans mon fichier de configuration? Mon construction rompt avec le message:

"Tâches: Failing MergeFilesTask"

Je ne sais vraiment pas ce que je fais mal.

Répondre

1

J'ai finalement résolu le problème.

Dans mon ccnet.config fichier dans les éditeurs node je dois copier le report.html comme ceci:

<publishers> 
    <merge> 
    <files> 
     <file action="Copy">PathToWorkingDirectory\report.html</file> 
    </files> 
    </merge> 
    <xmllogger /> 
    <artifactcleanup cleanUpMethod="KeepLastXBuilds" 
        cleanUpValue="50" /> 
</publishers> 

Le fichier sera copié dans le répertoire d'artefact dans un dossier nommé comme l'étiquette de construction. Cela doit être fait pour des raisons de sécurité:

HTML Source Emplacement
Ce plug-in permet d'afficher un fichier qui se trouve dans le dossier de construction dans le dossier des artefacts pour le projet. Il ne peut pas afficher les fichiers d'un autre emplacement (pour des raisons de sécurité).

Pour afficher le rapport HTML il vous suffit d'ajouter cette ligne à votre dashboard.config:

<htmlReportPlugin description="HRMLReport" actionName="htmlreport" htmlFileName="report.html" /> 

Cette ligne doit être placé sous le buildPlugins nœud. Après ces étapes, votre rapport devrait s'afficher si vous naviguez dans votre tableau de bord vers la génération qui génère le fichier. Il devrait y avoir un lien appelé HTMLReport.

0

Version rapide:

Remarque tous les exemples à:

http://www.cruisecontrolnet.org/projects/ccnet/wiki/File_Merge_Task

sont les fichiers "* .xml".

<merge> 
    <files> 
    <file>Nunit*.xml</file> 
    <file>FXCop.xml</file> 
    <file>resources\**\*.xml</file> 
    <file>E:\CruiseControl\BuildRoot\ProjectX\**\coderesults.xml</file> 
    <file>E:\CruiseControl\BuildRoot\Project*\**\Business*.xml</file> 
    </files> 
</merge> 

Vous devez fusionner .xml, pas .htm (l).

version plus longue:

La tâche de fusion se fond ~ xml.

Chaque fois qu'il y a une construction, il y a un fichier "MyBuildResults.xml", que j'appelle le "super-xml".

Si vous avez un outil (comme NUnit (console) .exe par exemple), cet outil va sortir un fichier, "NUnitTestResults.xml". La tâche de fusion CruiseControl.NET prendra alors "NUnitTestResults.xml" (opération, c'est XML) et "fusionnera" cela dans MyBuildResults.xml (encore une fois, XML).

Cela a du sens. Vous pouvez fusionner XML en un autre XML. Comment pourriez-vous prendre n'importe quel fichier et le fusionner dans n'importe quel fichier, y compris un fichier .html. Si vous fusionnez le HTML, qu'est-ce qui vient en premier? Dernier? Milieu?

Maintenant, une fois que vous avez un "MyBuildResults.xml" final, il y a des fichiers .XSL qui le transformeront en .html qui apparaitra dans la page web du projet CruiseControl.NET.

Vous remarquerez un tas de liens (à gauche) de la page Web CruiseControl.NET ... l'un d'entre eux étant "NUnit Test Results". Mais hors de la boîte, si vous cliquez dessus, rien ne s'affiche. En effet, aucun fichier NUnitTestResults.xml n'a été "fusionné" dans le fichier super-build-xml. Si vous trouvez les fichiers .xsl que CruiseControl.NET installe pour vous (ou que vous avez installé après coup), jetez un oeil à ceux-ci, qui vous montreront comment .xsl transforme le XML de la super-build -xml ".

+0

Merci pour votre réponse détaillée. Mais je comprends la fusion XML et je travaille bien sûr exactement comme vous l'avez dit. – scro

+0

Droite. Et vous essayez de fusionner un fichier non-XML, aka, un fichier html. C'est le problème. – granadaCoder

+0

Désolé, j'ai été interrompu lors de l'écriture du commentaire. Donc, mon problème est que je ne sais pas comment utiliser le [HTML Report Plugin] (http://www.cruisecontrolnet.org/projects/ccnet/wiki/HtmlReportPlugin). La façon dont je comprends le HTMLReportPlugin est que j'ai ai mis le rapport html dans mon répertoire de travail. Mais le tableau de bord CruiseControl ne peut afficher que les pages html situées dans l'emplacement des artefacts, donc je dois utiliser la [Tâche de fusion de fichiers] (http://www.cruisecontrolnet.org/projects/ccnet/wiki/File_Merge_Task) pour copier le fichier de mon répertoire arifacts. Avez-vous une expérience avec le HTMLReportPlugin? – scro

Questions connexes