Przede wszystkim jestem nowy w SpecFlow.SpecFlow: ClassInitialize and TestContext
Mam plik funkcji, który mam/chcę zautomatyzować używając MSTest do uruchomienia jako test funkcjonalny z w pełni skonfigurowanym serwerem, dostępem do danych ... W tym celu muszę skonfigurować serwer z danymi w bloki "Given" SpecFlow i uruchom je później. Muszę również skopiować niektóre pliki do katalogu wyjściowego testu.
W testach funkcjonalnych innych niż SpecFlow użyłem atrybutu ClassInitialize do pobrania TestDeploymentDir z TestContext; coś takiego:
[ClassInitialize]
public static void ClassSetup(TestContext context)
{
TargetDataDeploymentRoot = context.TestDeploymentDir;
}
Teraz SpecFlow nie mogę używać tego atrybutu, ponieważ jest już używany przez samego SpecFlow. Niektóre nowe atrybuty istnieją, np. BeforeFeature, który działa podobnie, ale nie przekazuje TestContext jako parametru.
Po prostu potrzebuję uzyskać dostęp do TestDeploymentDir TestContext w celu skopiowania niektórych plików, zanim naprawdę przetestuję mój serwer testów funkcjonalnych - łatwo wykonalne bez SpecFlow, ale prawie niemożliwe z SpecFlow.
Jak radzić sobie z tym problemem?
Czy to w ogóle możliwe?
Wielkie dzięki za porady!
Robert
Środowisko:
- Visual Studio 2012
- SpecFlow 1.9.0.77
Można wygenerować MSTest testy ze swoimi fiels fabularnych z specflow: http: //stackoverflow.com/questions/2984318/how-to-run-specflow-tests-in-visual-studio-2010 – nemesv
Dzięki za odpowiedź. Generuję już testy MSTest z moich plików funkcji, ale jak wspomniano powyżej, nie mam dostępu do TestContext. –
Może plik [AssemblyInitialize] (http://msdn.microsoft.com/en-us/library/microsoft.visualstudio.testtools.unittesting.assemblyinitializeattribute (v = vs.80) .aspx) może działać w twoim scenariuszu, specflow don Z niego skorzystaj. W przeciwnym razie przy obecnych plikach funkcji generowanych 'MsTestGeneratorProvider' nie można uzyskać sprawdzonego' TestContext'. Jednakże możesz czerpać z 'MsTestGeneratorProvider' i generować testy, które przechowują' TestContext' gdzieś wewnątrz specflow. – nemesv