diff --git a/src/it/junit/issue_147-featuresDirEmpty/pom.xml b/src/it/junit/issue_147-featuresDirEmpty/pom.xml new file mode 100644 index 000000000..cc35e5a4e --- /dev/null +++ b/src/it/junit/issue_147-featuresDirEmpty/pom.xml @@ -0,0 +1,58 @@ + + + 4.0.0 + + com.github.temyers.it + issue_147 + 1.0-SNAPSHOT + + An IT verifying the behavior when feature dir doesn't exist or is empty + + + UTF-8 + 1.2.2 + + + + + info.cukes + cucumber-junit + ${cucumber.version} + + + info.cukes + cucumber-java + ${cucumber.version} + + + + + + + @project.groupId@ + @project.artifactId@ + @project.version@ + + + generateRunners + generate-test-sources + + generateRunners + + + + foo + bar + + + + + + src/test/resources/features/emptyDir + + + + + diff --git a/src/it/junit/issue_147-featuresDirEmpty/src/test/resources/features/feature1.feature b/src/it/junit/issue_147-featuresDirEmpty/src/test/resources/features/feature1.feature new file mode 100644 index 000000000..ffd271d54 --- /dev/null +++ b/src/it/junit/issue_147-featuresDirEmpty/src/test/resources/features/feature1.feature @@ -0,0 +1,6 @@ +Scenario: Features directory is empty + Given the features directory is empty + When I perform a build + Then a warning log message should be created + But the build should succeed + And no runners should be generated \ No newline at end of file diff --git a/src/it/junit/issue_147-featuresDirEmpty/verify.groovy b/src/it/junit/issue_147-featuresDirEmpty/verify.groovy new file mode 100644 index 000000000..a479896ac --- /dev/null +++ b/src/it/junit/issue_147-featuresDirEmpty/verify.groovy @@ -0,0 +1,10 @@ +def logFile = new File(basedir, 'build.log') +content = logFile.text + +assert content.contains('Features directory is empty. No runners will be generated') + + +def directory = new File(basedir, "target/generated-test-sources/cucumber") + +assert directory.isDirectory() +assert directory.listFiles().length==0 \ No newline at end of file diff --git a/src/it/junit/no-features-dir/invoker.properties b/src/it/junit/no-features-dir/invoker.properties deleted file mode 100644 index 324b5fb99..000000000 --- a/src/it/junit/no-features-dir/invoker.properties +++ /dev/null @@ -1 +0,0 @@ -invoker.buildResult=failure \ No newline at end of file diff --git a/src/main/java/com/github/timm/cucumber/generate/GenerateRunnersMojo.java b/src/main/java/com/github/timm/cucumber/generate/GenerateRunnersMojo.java index cf637418a..723391564 100644 --- a/src/main/java/com/github/timm/cucumber/generate/GenerateRunnersMojo.java +++ b/src/main/java/com/github/timm/cucumber/generate/GenerateRunnersMojo.java @@ -190,13 +190,20 @@ public class GenerateRunnersMojo extends AbstractMojo implements FileGeneratorCo public void execute() throws MojoExecutionException { if (!featuresDirectory.exists()) { - throw new MojoExecutionException("Features directory does not exist"); + getLog().warn("Features directory does not exist"); + return; } + createOutputDirIfRequired(); + final Collection featureFiles = listFiles(featuresDirectory, new String[] {"feature"}, true); - final List sortedFeatureFiles = new NameFileComparator().sort(new ArrayList(featureFiles)); - createOutputDirIfRequired(); + if (featureFiles.isEmpty()) { + getLog().warn("Features directory is empty. No runners will be generated."); + return; + } + + final List sortedFeatureFiles = new NameFileComparator().sort(new ArrayList(featureFiles)); File packageDirectory = packageName == null ? outputDirectory