Здравствуйте, есть тесты на C# с использованием Nunit
Необходимо поверх существующего накатить specFlow
Собственно вопрос, понятно что придется переписать текущие тесты, но хотелось бы это сделать с минимальными потерями
namespace Tests.test
{
[TestFixture]
[Parallelizable]
class UserCreating
{
[Test]
[Retry(2)]
[Repeat(1)]
[Category(CategoryData.user)]
[TestCase("User1234", "Vladimir Vladimirov", TestName = "Создание юзера")]
[TestCase("User123", "Ivan Ivanov", TestName = "Создание юзера")]
public void UserCreating(string user, string username)
{
//создаем юзера
//что то делаем с ним
//проверяем
//удаляем юзера
}
}
}
Каким образом изменить конструкцию для SpecFlow? из обязательных параметров нужны [Retry(2)],[Repeat(1)],[Category(CategoryData.user)] ну и данные для тестов, SpecFlow можно рядом поставить, если да то подскажите пожалуйста?
В качестве шагов для specflow там будут функции на создание удаления юзера, это понятно, но каким образом заставить это работать?
Дам несколько рекоммендация, которые надеюсь помогут:
Ваша задача в том, чтобы разделить имеющиеся тесты на методы - шаги, каждый из которых должен будет иметь аннотацию-шаг, которая будет использоваться в сценариях.
Для этого конкретного случая, мы можете использовать Scenario Outline.
Категории можно добавить к сценариям как таги - @myTag.
Не могу сказать, как сделать то, для чего у вас использованы аннотации - Retry and Repeat.
И да, SpecFlow тесты могут быть быть вместе с обычными NUnit тестами в одном проекте.
Из каждого SpecFlow сценария генерируется тот же NUnit тест, который можно запускать как и остальные.
Retry - Это повторить тест сколько-то раз, если он неудачный
Repeat - просто повторять набор тестов определенное количество раз
Есть ли такое в SpecFlow?
По поводу Retry, настройки тестсьютов, трансформации app.config в Specflow есть специальный файл с расширением srprofile, где все это и еще много чего настраивается, например, повтор упавших тестов:
<Execution stopAfterFailures="-1" retryFor="None"
testThreadCount=“3”
testSchedulingMode=“Sequential” />
Мы отложили переход на 3 версию, потому что она еще очень сырая, отсутствует нормальная документация. В частности, при попытке перенести конфигурацию из app.config в формат json, постоянно вылетает ошибка, при парсинге этого файла.
У них на баг трекере она тоже заведена
Я не использую никаких особых настроек для него. По поводу повтора в случае ошибок, даже не искал, поскольку считаю плохой практикой. Единственное, что пока для меня плохо - нету аллура для третьей версии.
Я тоже не искал), он был включен по умолчанию - искал как отключить. Из полезных фич, которые пригодились на нашем проекте:
кастомизация отчета об ошибках(можно посмотреть здесь)
разнесение фича файлов и кода их реализущего в разные солюшены