Проблемы с именованием средства выполнения теста Specflow при отображении URL-адреса C # с использованием примеров ScenarioOutline

Я использую схему сценария Specflow для запуска списка разных URL-адресов с использованием примеров. Однако при проверке обозревателя тестов соглашение об именах для каждого примера берет последнее слово после точки. Я пытался найти что-то, связанное с форматированием, но зашел в тупик и не смог найти здесь ничего, что соответствовало бы моей конкретной проблеме.

Например, www.test.co.uk отображается как «uk in TestFeature».

К сожалению, в моем тесте URL-адрес является уникальным значением, поэтому, когда дело доходит до отчетности, ясно, какие URL-адреса были протестированы в сценарии ... в противном случае я бы использовал имя клиента.

Пакеты в решении включают: NUnit, Specflow, SpecRun

Пример схемы сценария ниже:

Scenario Outline: The login page for a given client is displayed when navigated to it
When I load the URL '<URL>'
Then The login page is displayed for client '<Client>'
Examples:
| URL                     | Client    |
| http://www.test1.co.uk  | Someone1  |
| http://www.test2.co.uk  | Someone2  |
| http://www.test3.co.uk  | Someone3  |
| http://www.test4.co.uk  | Someone4  |
| http://www.test5.co.uk  | Someone5  |
| http://www.test6.co.uk  | Someone6  |
| http://www.test7.co.uk  | Someone7  |
| http://www.test8.co.uk  | Someone8  |
| http://www.test9.co.uk  | Someone9  |
| http://www.test10.co.uk | Someone10 |

Обозреватель тестов:

Просмотр обозревателя тестов

Если потребуется дополнительная информация, дайте мне знать. Я использую Visual Studio 2017 в качестве IDE и SpecFlow 2.4.1, SpecRun 1.8.5.


person Scott    schedule 24.12.2018    source источник
comment
Вам следует добавить используемую вами версию Specflow и VisualStudio. Когда я вставляю ваш пример в VS2017, я вижу TheLoginPageForAGivenClientIsDisplayedWhenNavigatedToIt_HttpWww_Test1_Co_Uk в качестве используемого имени.   -  person Jeroen Heier    schedule 27.12.2018
comment
@jeroenHeir Спасибо - обновлено. Похоже, ваш пример форматирует точки как символы подчеркивания ... Вы знаете, как изменить это, поскольку это может быть моим решением?   -  person Scott    schedule 28.12.2018
comment
См. эту страницу: можно изменить конфигурацию.   -  person Jeroen Heier    schedule 29.12.2018
comment
Спасибо. К сожалению, это не решило проблему - я обновил свой app.config, включив ‹trace stepDefinitionSkeletonStyle = MethodNameUnderscores /›, затем воссоздал определения шагов и новый фиктивный сценарий, но имена моих примеров все еще сохранялись. Можете ли вы посоветовать, какой стиль по умолчанию используется в вашем app.config? И какой тестовый раннер вы используете?   -  person Scott    schedule 31.12.2018
comment
Я вообще не использую никакой конфиг; соглашение об именах, упомянутое ранее, используется по умолчанию. Я использую C #, .NetCore 2.2, Specflow.Tools.MsBuild.Generation (3.0.155-beta), VS2017 и расширение Specflow для VS2017 2018.1.15.7173 (добавьте дополнительную галерею расширений под параметрами): myget.org/F/specflow-vsix/vsix). См. Также здесь   -  person Jeroen Heier    schedule 03.01.2019


Ответы (1)


У нас (как и в SpecFlow + Team) есть ошибка экранирования имен сценариев, когда они содержат точку. Нам все еще нужно это исправить.

Я бы посоветовал вам (и это самый быстрый обходной путь на данный момент) - это добавить столбец, добавить начало и использовать его для описания единственного примера в этой строке.

SpecFlow использует для именования первый столбец столбца схемы сценария. Если у вас есть только URL-адреса, названия сценариев не очень удобны для чтения. А URL-адреса - это деталь "реализации".
Возможно, имя клиента лучше подходит для включения в имя сценария.


Полное раскрытие информации: я один из разработчиков SpecFlow и SpecFlow +.

person Andreas Willich    schedule 07.01.2019
comment
Спасибо @AndreasWillich за отзыв. С нетерпением жду исправления. К сожалению, в моем сценарии один клиент может иметь несколько URL-адресов, причем URL-адреса являются основным отличительным идентификатором для теста. Боюсь, что это просто данные. Я потенциально могу изменить набор данных, но, в конце концов, определение набора данных зависит от бизнеса, в котором я работаю. - person Scott; 08.01.2019
comment
@Scott: Не могли бы вы создать здесь проблему: github.com/techtalk/SpecFlow Я попытался воспроизвести проблема, но я не смог. В этом примере github.com/SabotageA /SpecFlow.Example.AllTestRunners/blob/ название сценария отображается правильно. - person Andreas Willich; 14.01.2019