cucumber/cucumber-jvm — pull request #636 by brasmusson (2013-11-26 12:30:21+00:00)
Title: The RuntimeOptionsFactory should add default feature path, glue path and formatter once

Before #568 and the change from @Cucumber.options to @CucumberOptions, the following runner structure:
```
package thepackage

class BaseClass {}

@RunWith(Cucumber.class)
public class RunTest extends BaseClass {}
```
resulted in that the RuntimeOptions contains:
```
Feature paths: ["classpath:thepackage"]
Glue paths: ["classpath:thepackage"]
Formatters: [NullFormatter]
```
(one reason to have a runner base class could be to have @BeforeClass and @AfterClass annotated methods there)

Since #568 is about using parameters from @CucumberOptions annotation from all levels of the runner inheritance hierarchy, there is no reason that the behavior when not using any @CucumberOptions annotations should not remain the same.

However, currently default feature path and default glue path are added once for each inheritance level where they are not explicitly defined (regardless whether a @CucumberOptions annotation exist on that level or not). And currently default formatter is added once for each inheritance level where the is an @CucumberOptions annotation which does not define formatters explicitly). The result is that the above runner structure result in a RuntimeOptions containing:
```
Feature paths: ["classpath:thepackage","classpath:thepackage"]
Glue paths: ["classpath:thepackage","classpath:thepackage"]
Formatters: [ProgressFormatter]
```
This PR reverts the RuntimeOptionsFactory behavior back to the original one regarding adding default feature paths, glue paths and formatters.

With this change the unique glue path work around in the TestNGCucumberRunner can be removed, and thus is neither #632 or #633 needed for that reason.