Visual Studio Test Explorer показывает сценарии Specflow несколько раз

Я использую SpecFlow в VS 2015 для создания тестов автоматизации Selenium Webdriver (хотя это не имеет отношения к этому вопросу). Вне Visual Studio я запускаю тесты с помощью nunit3-console.exe.

Внутри VS мой App.config настроен на <unitTestProvider name="SpecRun+NUnit" />

Мой вопрос касается того, как сценарии отображаются в обозревателе тестов. Если я создаю файл функций «FooTest.feature» с одним сценарием «Добавить числа foo» с тегом @mytag, это то, что отображается в обозревателе тестов при группировке по признакам:

Обозреватель тестов, сгруппированный по признаку

Или, если я группирую по классам, я получаю:

Обозреватель тестов, сгруппированный по классам

Имею ли я над этим контроль? Или это просто так работает? В идеале я просто хотел бы просмотреть запись «mytag». (Или Категория [mytag]. Только не все!)


person Joel    schedule 30.05.2017    source источник


Ответы (1)


С помощью SpecRun+NUnit вы создаете модульные тесты в файле исходного кода для SpecFlow+Runner (SpecRun) и NUnit. Visual Studio находит их обоих, поэтому вы получаете все вдвойне. Есть ли причина, по которой у вас такая конфигурация? Зачем вам тесты NUnit? Если вы используете SpecFlow+Runner, вам нужно настроить его только на SpecRun.

person Andreas Willich    schedule 31.05.2017
comment
Хороший вопрос. Я использую консоль nunit для запуска тестов непрерывной интеграции, и я использую некоторые специфические возможности nunit в некоторых своих тестах. Но это может быть одна из тех вещей, которые я пробовал, когда экспериментировал, думая, что это необходимо. Я попробую запустить без этого параметра и посмотрю, есть ли какое-либо влияние. Может быть, стоит задаться вопросом: когда кому-то нужно использовать SpecRun+NUnit? - person Joel; 31.05.2017
comment
Я понимаю, что +NUnit требуется, если вы хотите запускать тесты с помощью консоли nunit, потому что, если я изменю unitTestProvider на SpecRun, это перестанет работать. Может быть, дисплей TestExplorer — это то, с чем мне приходится жить. - person Joel; 31.05.2017
comment
если вы настраиваете SpecRun, вы должны использовать командную строку specrun.exe для выполнения тестов. Пакет SpecRun.Runner содержит тестовый адаптер VS, чтобы вы могли видеть тесты в обозревателе тестов. Но, похоже, вы хотите использовать не SpecFlow+Runner, а NUnit. В этом случае вы настраиваете unittestprovider просто на NUnit. В этом случае вы хотите добавить пакет NuGet NUnit3TestAdapter. В него входит тестовый адаптер VS для NUnit. В этом случае я бы удалил все пакеты SpecRun из вашего проекта. - person Andreas Willich; 31.05.2017
comment
@Joel Как разработчик SpecFlow + Runner мне было бы интересно, какие конкретные функции NUnit вы используете. Возможно уже есть в раннере. - person Andreas Willich; 31.05.2017
comment
Андреас, спасибо за комментарии. Я начал использовать SpecRun некоторое время назад, и у меня возникли некоторые трудности с достижением того, что я хотел, пытаясь интегрироваться с TeamCity. Я постараюсь вспомнить, что это было, и вернуться к вам. Возможно, если бы я начал сегодня, мне бы не пришлось переключаться на NUnit. Мои тесты создают кучу xml-файлов формата nunit2, у меня есть утилита, которая объединяет их в один xml-файл, и я все еще использую specrun.exe для создания html-отчета после запуска моих тестов. - person Joel; 31.05.2017
comment
Не дает редактировать. Исправление ^^ Я все еще использую specrun.exe, должен сказать specflow.exe - person Joel; 31.05.2017