SpecFlow - это замечательно - и это очень помогает нам провести правильное тестирование интеграции.Как научить SpecFlow добавлять дополнительные атрибуты NUnit к моему тестовому классу
Одна вещь, о которой мне было интересно, заключается в том, есть ли способ сообщить SpecFlow добавить дополнительные атрибуты NUnit к классу тестов, который он создает в файле с кодом функции.
Прямо сейчас, мой тестовый класс получает генерируется что-то вроде этого:
[System.CodeDom.Compiler.GeneratedCodeAttribute("TechTalk.SpecFlow", "1.8.1.0")]
[System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
[NUnit.Framework.TestFixtureAttribute()]
[NUnit.Framework.DescriptionAttribute("Some action description here")]
public partial class MySampleFeature
{
......
}
Есть ли способ в SpecFlow сказать ему, чтобы добавить дополнительный NUnit атрибут для определения категории теста - как это:
[System.CodeDom.Compiler.GeneratedCodeAttribute("TechTalk.SpecFlow", "1.8.1.0")]
[System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
[NUnit.Framework.TestFixtureAttribute()]
[NUnit.Framework.DescriptionAttribute("Some action description here")]
[NUnit.Framework.Category("LongRunningTests")] <== add this "Category" attribute
public partial class MySampleFeature
{
......
}
Добавление это вручную сгенерированный код-за расточительно - в следующий раз SpecFlow повторно генерирует этот код-позади, я должен помнить, делать это снова (и скорее всего, я не забуду).
И если эта возможность еще не присутствует в SpecFlow - как подать заявку на добавление этого? :-)
Отлично - спасибо! Работает как шарм! –
Это не похоже на возможность в SpecFlow 1.9, потому что интерфейс IUnitTestGeneratorProvider недоступен. В документации указано, что поставщики будут заменены плагинами в версии 2.0 при ее выпуске. Например, я хотел бы реализовать пользовательский xUnitGeneratorProvider, чтобы теги были вытеснены в xUnit.NET Traits. –
Это возможно в SpecFlow 1.9. Вам нужно создать новый проект, в котором будет размещен ваш плагин SpecFlow. В этом проекте установите пакет SpecFlow NuGet и пакет SpecFlow.Plugins NuGet. Пакет SpecFlow.Plugins NuGet содержит сборки, которые позволяют создавать плагины SpecFlow; и в одной из этих сборок есть интерфейсы «IUnitTestGeneratorProvider» и «IUnitTestGeneratorPlugin» (и я считаю, что каждый из них имеет базовый класс). – fourpastmidnight