Можно ли отсортировать тесты Specflow в Visual Studios 2012 Test Explorer?

Похоже, что в обозревателе тестов Visual Studio 2012 нет функции сортировки для функций Specflow. Есть ли у кого-нибудь / есть ли обходной путь, чтобы убедиться, что тесты выполняются в определенном порядке (поскольку на результат могут повлиять результат / выполненные действия?). в (а) предыдущих тестах?

Функциональность "Упорядоченный тест", доступная в Visual Studio 2012, по-видимому, недоступна для функций Specflow. Файл.orderedtest, который вы можете создать, не распознает функции SpecFlow как доступные тесты.

2 ответа

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

Рассмотрим это следующим образом: если мы пишем обычный модульный тест с фиктивными зависимостями, то все, что нам нужно, создается в нашем тестовом методе перед вызовом SUT. Когда мы сворачиваем шкалы тестирования, нам все еще нужно убедиться, что все находится в правильном состоянии, прежде чем вызывать нашу гораздо большую SUT. Тогда для интеграции или системного тестирования будут созданы тестовые пакеты, готовые к подаче, базы данных были очищены и готовы для нового ввода, и даже ручным тестировщикам были предоставлены сценарии того, что тестировать.

Когда мы рассматриваем тесты на уровне SpecFlow, нам нужно то же самое, GivenВсе еще нужно, чтобы все было на месте до того, как When можно назвать.

Однако у меня лично есть некоторые сценарии уровня интеграции, которые читают,

Given ...
And ...
When ...
Then ...
When ...
Then ...
Given ...
When ...
Then ...
And ...

В некотором смысле они совпадают с вашими заказанными тестами, финал When требует, чтобы все предыдущие WhenS завершены правильно. Таким образом, это нарушает несколько принципов модульного тестирования, в том числе каждый тест должен проваливаться только по одной причине, однако я лично согласен с этим, поскольку мой дескриптор модульных тестов более низкого уровня предоставляет индикатор для проблем с кодом.

Существуют разные способы "сортировки". Вы можете использовать функциональность Group By в Test Explorer и создавать списки воспроизведения (пометьте тесты -> щелкните правой кнопкой мыши -> Добавить в список воспроизведения). Насколько я знаю (но до сих пор не использовался) заказанные тесты также являются способом сортировки тестов.

Другие вопросы по тегам