existe-t-il une façon de garder la table de données "Exemples" dans un fichier distinct du contour des scénarios?
Qu'est-ce que j'essaie d'atteindre consiste à exécuter l'ensemble du scénario une fois par navigateur, l'un après l'autre. p>
J'ai ceci fonctionne avec la fonction suivante: p> mais cela signifie maintenir la table des exemples sur tous les tests si j'ai ajouté un autre navigateur. Est-il possible de faire référence à une seule table "exemples" de chaque plan de scénario? P> ou appelez un plan de scénario, complet avec un tableau d'exemples, à partir d'une définition de marche? P> (Utilisation de SPECFLOW et selenium webdriver avec nunit) p> tandis que "fond" vous permet de définir une table partagée, il semble être pour une seule fonctionnalité avec plusieurs scénarios. Ce que je cherche, c'est un moyen d'utiliser la même table dans toutes les caractéristiques à travers différents fichiers (.Feature). P> de l'expérience, je sais que l'utilisation de tags comme @chrome peut fonctionner pour des navigateurs individuels (c'est-à-dire Comment j'ai écrit la plupart de mes tests) mais que vous utilisez plusieurs balises, les résultats de tous les navigateurs fonctionnent en même temps, pas l'un après l'autre. P> P>
3 Réponses :
Je ne crois pas que vous puissiez le faire dans Specflow (ou dans une mise en œuvre de la langue de la cornue). Comme mentionné dans la question connexe, vous pouvez avoir un arrière-plan pour fournir une table, mais je ne suis pas certain que cela peut être utilisé pour fournir des exemples dans des contours de scénario, au moins je n'ai jamais vu cela utilisé et je ne sais pas comment Cela pourrait fonctionner. P>
Des solutions possibles (sales), je peux penser que cela se déroulerait dans les lignes d'un script qui numérisait vos fichiers de fonctionnalité et mis à jour les exemples lorsque vous ajoutez un nouveau navigateur (je ne peux pas l'imaginer que cela soit très souvent), ou d'avoir Un extrait de code pour ajouter le texte des exemples si le problème est le problème. P>
SPECFLOW conseille d'utiliser des balises pour ce type de scénarios. Peut-être avez-vous fait le didacticiel de la librairie, puis vous le reconnaîtrez à partir des balises indiquées si un scénario était un système ou un test de navigateur.
@Chrome @Firefox @IE # <- feature wide, applicable for all scenarios Feature: Open Google Scenario: Open Google in the browser Given the browser is active When I navigate to "https://www.google.co.uk/" Then the title should be 'Google' @Lynx # <- additional browser for a specific scenario Scenario: There is a Search button Given the browser is active When I navigate to "https://www.google.co.uk/" Then I should see a button with label "Search"
S'il vous plaît voir la dernière modification. Si vous connaissez un moyen de vous assurer que les navigateurs ne courent pas en même temps, nous avons peut-être une réponse.
Si vous exécutez Nunit à partir de la ligne de commande, Vous pouvez utiliser le / include Code> Paramètre
Pour exécuter uniquement des tests pour un type de navigateur. Dans le testSettup, vous devez déterminer quel navigateur doit être démarré et n'utilisez que ce navigateur pour cette couronne de renoncement spécifique.
Je pense que l'approche la plus maintenue consiste à paramétrer le navigateur qui est utilisé en définissant une variable d'environnement avant d'exécuter le test. Dans votre définition code> indiquant code>, vous pouvez utiliser Une autre alternative consiste à créer une spéciale Fichier texte contenant le nom du navigateur à utiliser. Ouvrez ce fichier et lisez le contenu de votre Si vous avez une version automatisée, vous pouvez configurer une coque d'alimentation ou un fichier de commandes qui définit ce fichier texte à Le premier navigateur exécute tous les tests, puis définit le fichier texte sur le navigateur suivant et remédier aux tests. Rincer et répéter pour chaque navigateur que vous souhaitez utiliser. P> Vous pouvez le jeter dans le environnement.gevariable ("...") code> pour récupérer la valeur au moment de l'exécution.
donnée par code> définition étape. P>
nunit-console nunit.tests.csproj /config:Firefox
nunit-console nunit.tests.csproj /config:InternetExplorer
nunit-console nunit.tests.csproj /config:Chrome
nunit-console nunit.tests.csproj /config:Safari
Question associée qui n'est pas tout à fait un double