Jun 29, 2011 at 12:53 PM
Edited Jun 29, 2011 at 8:48 PM
The reason is simple: integration test run takes a lot more time to execute.
Speaking honestly, we don't often use this feature.
One of the real scenarios is:
Scenario: should show people action for not admin user when user allow acces to people area
Given permission people access is enabled for 'Developer' role
And project 'Project1' with process 'All Practices' created
And user 'vasya' is in 'Developer' role
And user 'vasya' is a project 'Project1' project member
And user 'vasya' is not an administrator
And user 'vasya' is logged in
When project 'Project1' selected as project context
Then 'Home' action group should contain the actions: Yesterday, Projects, Programs, People, Import, Teams Board Beta
This scenario is for navigation system which is quite sophisticated in our project, so we have plenty of tests which cover this are functionality.
In the most cases our developers use Execute(In.Context) syntax to be sure that their code use definite action steps implementation because sometimes Given/When/Then actions can have slightly different meaning in different scenarios.
Also it solves action step navigation issue when a developer can't find which action step definition used -- we've got hundreds actions steps at the moment.
BTW, do you think if it's possible to introduce extra-tracing feature in NBehave? This trace could contain runtime execution information - where action step is actually located.
It could save our time in some cases.