2017-05-19 2 views

Répondre

1

Jetez un oeil à l'échantillon SeleniumWebTest projet here. Cet exemple de projet montre comment inclure une capture d'écran dans votre rapport. Bien que l'exemple soit basé sur le sélénium, les mêmes principes s'appliquent à d'autres cadres.

Une explication plus détaillée de la façon dont cela fonctionne peut être trouvée here sous "Y compris les captures d'écran". Essentiellement, vous devez abuser de la console et l'utiliser pour afficher les chemins de fichiers de vos images.

Toutes les données écrites sur la console sont disponibles dans votre rapport (c'est ainsi que les détails de la trace sont reçus par le rapport). Vous devrez analyser les données écrites sur la console et supprimer le chemin du fichier que vous voulez intégrer. Assurez-vous de supprimer complètement le chemin de l'image pour ne pas afficher le chemin du fichier dans le cadre des autres informations de trace reçues de la console.

Modifier: J'ai depuis découvert qu'il semble y avoir un problème avec le modèle dans le projet exemple. La section suivante dans le modèle est buggée: class="log">@Raw(FormatTechMessages(traceEvent.TechMessages.TrimEnd()).Replace("SCREENSHOT[ <a href="http://specflow.org/plus/documentation/,-/" data-page=",-"<img width='1000' src=").Replace("</a> ]SCREENSHOT", "</img>"))</pre>

Cela est dû au fait que la console ne semble plus formater le fichier en tant que lien hypertexte, de sorte que la chaîne de remplacement n'est jamais trouvée. Mise à jour de cette ligne ReportTemplate.cshtml semble avoir fait le tour: <pre class="log">@Raw(FormatTechMessages(traceEvent.TechMessages.TrimEnd()).Replace("SCREENSHOT[ ", "<img width='1000' src=\"").Replace(" ]SCREENSHOT", "\"</img>"))</pre>

Comme la console est plus le formatage du fichier en tant que lien hypertexte, il vous suffit de remplacer le rembourrage (dans ce cas, le « SCREENSHOT [] SCREENSHOT ") à partir de la chaîne et placez à la place le chemin avec la balise <IMG>. Vous devez également ajouter les guillemets autour du chemin du fichier.

+0

Merci pour la réponse. Je l'ai fait exactement comme mentionné dans le projet SeleniumWebTest. Mais toujours confronté au même problème. -> Code AfterScenarioHook - Console.WriteLine ($ "SCREENSHOT [fichier: /// {tempFileName}] SCREENSHOT"); -> Rapport HTML généré sous - file: /// C:/Users/xxxxx/Documents/Visual Studio 2015_Backup/Projects/MyProject.Specs/TestResults/tmp366D.jpg –

+0

En outre, j'utilise uniquement SpecFlow, SpecRun. Est-il disponible uniquement dans la version payante? –

+0

Oui, les fonctions de rapport étendu sont uniquement disponibles dans SpecFlow + Runner, et non dans la version open source de SpecFlow. –