First of all let me thank you, your work is impressive. Being under the impression, I have decided to give it a try and quickly ran into an issue.
Consider the following code (implementation details are omitted for sake of brevity).
Describe ( config_instance )
{
Describe ( with_invisible_string_configuration_parameter )
{
Describe ( by_default )
{
It ( is_empty )
{}
It ( shows_empty_value )
{}
};
Describe ( when_assigned )
{
It ( holds_the_value )
{}
It ( shows_the_value )
{}
};
};
Describe ( with_visible_string_configuration_parameter )
{
Describe ( by_default )
{
It ( is_empty )
{}
It ( shows_empty_value )
{}
};
Describe ( when_assigned )
{
It ( holds_the_value )
{}
It ( shows_the_value )
{}
};
};
};
Surprisingly I have discovered that only a half of my testcases are actually executed. The problem came down to that test suite names are all global. There are 2 test suites called just "by_default" and 2 suites called "when_assigned", and only one of each of them gets registered - because its name has to be globally unique.
I have tried to play with SubContexts but they seem to be globally named the same way.
I would hate to have my suites named like by_default1 and by_default2 given they already reside in different super suites. They are scopes at last, aren't they?
I feel like I'm missing something important about your implementation. If I'm not, I would gladly accept a hint from you where I should start to bring testsuites name locality into Igloo.