Question

Résolu: Regardez au fond de cette question pour la configuration de travail


Je tente de mettre en place NCover pour une utilisation dans mon projet FinalBuilder, pour un projet .NET 4.0 C #, mais mon fichier de sortie de couverture finale ne contient aucune donnée de couverture.

J'utilise:

Tous les outils sont les derniers officiels d'aujourd'hui.

J'ai enfin réussi à amadouer FB dans l'exécution de mes tests unitaires sous NCover pour le projet .NET 4.0, donc je reçois Tests run: 184, ..., ce qui est correct.

Cependant, la sortie de fichier Coverage.xml finale de NCover est presque vide, et ressemble à ceci:

<?xml version="1.0" encoding="utf-8"?>
<!-- saved from NCover 3.0 Export url='http://www.ncover.com/' -->
<coverage profilerVersion="3.3.2.6211" driverVersion="3.3.2" exportversion="3" viewdisplayname="" startTime="2010-04-22T08:55:33.7471316Z" measureTime="2010-04-22T08:55:35.3462915Z" projectName="" buildid="27c78ffa-c636-4002-a901-3211a0850b99" coveragenodeid="0" failed="false" satisfactorybranchthreshold="95" satisfactorycoveragethreshold="95" satisfactorycyclomaticcomplexitythreshold="20" satisfactoryfunctionthreshold="80" satisfactoryunvisitedsequencepoints="10" uiviewtype="TreeView" viewguid="C:\Dev\VS.NET\LVK.IoC\LVK.IoC.Tests\bin\Debug\Coverage.xml" viewfilterstyle="None" viewreportstyle="SequencePointCoveragePercentage" viewsortstyle="Name">
  <rebasedpaths />
  <filters />
  <documents>
    <doc id="0" excluded="false" url="None" cs="" csa="00000000-0000-0000-0000-000000000000" om="0" nid="0" />
  </documents>
</coverage>

La sortie dans le journal FB est:

...
***************** End Program Output *****************

Execution Time: 1,5992 s

Coverage Xml: C:\Dev\VS.NET\LVK.IoC\LVK.IoC.Tests\bin\Debug\Coverage.xml
NCover Success

Ma configuration de l'étape de FB pour NCover:

  • NCover ce : la couverture des tests NUnit
  • Commande : C:\Program Files (x86)\NUnit 2.5.4\bin\net-2.0\nunit-console.exe
  • arguments de commande : LVK.IoC.Tests.dll /noshadow /framework:4.0.30319 /process=single /nothread
    • Note: J'ai essayé avec et sans les options de /process et /nothread
  • Répertoire de travail : %FBPROJECTDIR%\LVK.IoC.Tests\bin\Debug
  • Liste des assemblages à profil : %FBPROJECTDIR%\LVK.IoC.Tests\bin\Debug\LVK.IoC.dll
    • Note:. J'ai essayé la liste juste le nom de l'assemblée, à la fois avec et sans l'extension

La documentation de l'étape de FB ne l'aide, car elle ne liste que les peines mineures pour chaque propriété, et ne donne pas des exemples ou des conseils de dépannage.

Depuis que je veux tirer les résultats de couverture en NDepend pour exécuter l'analyse build-temps, je veux que le fichier contient l'information nécessaire.

J'utilise aussi TestDriven , et si je clic droit sur le fichier de solution et sélectionnez « Test avec NCover », NCover-explorateur ouvre avec les données de couverture, et si je lui demande de me montrer le dossier avec les fichiers de couverture, dans il y a un fichier .xml avec la même structure que celle ci-dessus, juste avec toutes les données qui doivent être là, donc les outils que j'ai est certainement capable de le produire.

Quelqu'un at-il une idée de ce que j'ai mal configuré ici?


Résolu : La configuration suivante a finalement fonctionné pour moi. Elle produit une couverture de code statistiques de base sur la page de résultats de début pour une construction, avec un lien vers un rapport détaillé avec tout.

Depuis que je nomme mes projets de tests unitaires les mêmes que le projet, il teste, seulement avec un suffixe .Tests, je l'ai exclu ceux de la couverture du code. De plus, je devais comprendre plus précisément que mes propres assemblées (qui commencent tous par LVK.) Sinon je recevrais des assemblées chargées par le coureur de TeamCity, qui a légèrement touché mes statistiques de couverture.

Tout d'abord, j'ai installé la plus récente des outils (comme de cette édition):

  • NCover 3.4.8
  • TeamCity 5.1.2
  • NUnit 2.5.5

La configuration sur l'écran de construction dans TeamCity est alors suit comme:

  • Cibles: Reconstruire
  • Configuration: Debug
  • Plate-forme: Any CPU
  • outil de couverture .NET: NCover (3.x)
  • .NET Runtime: .NET Framework 4.0, Version: natif
  • Chemin d'accès NCover 3:% system.ncover.v3.x64.path% (ce qui est Windows 2008 Server R2 64 bits)
  • NCover Arguments supplémentaires:

    //ias LVK.*
    //eas .*Tests
    //eas LVK\.CodeQuality
    //ea LVK\.CodeQuality\.IgnoreCodeCoverageAttribute
    
  • D'autres rapports NCover Arguments:

    //or FullCoverageReport:Html:{teamcity.report.path}
    
  • NUnit Runner: NUnit 2.5.5

  • .NET Runtime Plate-forme: auto (MSIL), Version: 4.0
  • Exécuter les tests à partir de: ** \ bin \ Debug * Tests.dll
Était-ce utile?

La solution

Pour autant que je sache, NCover n'est pas capable de couvrir les tests pour .NET 4.0. Ils ont annoncé une nouvelle version pour .NET 4.0, mais il est pas encore là.

Informez-vous sur le sujet . Personnellement, je n'ai aucune expérience avec cette tâche ...

Mise à jour : Ils ont libéré NCover 3.4 avec prise en charge .NET 4.0. Peut-être vous donner un essai.

Autres conseils

Je l'ai trouvé votre réponse de cette discussion: NUnit n'est pas en cours d'exécution code Visual Studio 2010

Pour le fichier nunit-console-x86.exe.config, sous <configuration> ajouter:

<startup>
  <requiredRuntime version="v4.0.30319" />
</startup>

Sous <runtime> add

<loadFromRemoteSources enabled="true" />

Correction pour moi. J'utilise TeamCity pas FinalBuilder bien.

J'utilise aussi NCover 3.4.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top