Class GherkinToAsciidocExtension

java.lang.Object
com.arc_e_tect.gradle.gherkin.GherkinToAsciidocExtension

public abstract class GherkinToAsciidocExtension extends Object
DSL extension for the Gherkin-to-AsciiDoc Gradle plugin.
 gherkinToAsciidoc {
     sourceDirs.from('src/test/resources/features')                                // default
     includeSubDirs = false                                                        // default
     outputDir      = layout.buildDirectory.dir('generated-docs')                 // default
     outputFileName = 'features.adoc'                                             // default
     trackProgress  = false                                                        // default
     // glueCodeDirs.from('src/test/java/.../steps')                              // required when trackProgress = true
     groupByFeature = false                                                        // default; forced to true whenever trackProgress = true
     // snippetDir  = layout.buildDirectory.dir('generated-docs/features/snippets') // default
     // template    = file('templates/report.mustache')                            // optional
     // systemUnderTestVersion = 'v1.0.0'          // optional; default: project.version
 }
 
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    static final String
    Default name of the generated AsciiDoc output file.
    static final String
    Default relative path of the directory report snippets are written to.
    static final String
    Default relative path of the source directory containing .feature files.
    static final String
    Extension DSL block name, i.e.
  • Constructor Summary

    Constructors
    Constructor
    Description
    For use by the Gradle-generated concrete subclass.
  • Method Summary

    Modifier and Type
    Method
    Description
    abstract org.gradle.api.file.ConfigurableFileCollection
    Directories containing the Cucumber-JVM glue code (step definitions) used to determine whether a scenario's steps are implemented.
    abstract org.gradle.api.provider.Property<Boolean>
    Whether to group scenarios by their enclosing Feature in the generated AsciiDoc, instead of a flat list.
    abstract org.gradle.api.provider.Property<Boolean>
    Whether to recursively scan sub-directories of every configured directory in getSourceDirs().
    abstract org.gradle.api.file.DirectoryProperty
    Directory where the generated AsciiDoc file will be written.
    abstract org.gradle.api.provider.Property<String>
    Name of the generated AsciiDoc file (without path).
    abstract org.gradle.api.file.DirectoryProperty
    Directory that the listed.adoc/defined.adoc/implemented.adoc report snippets are written to when getTrackProgress() is true.
    abstract org.gradle.api.file.ConfigurableFileCollection
    Source directories that contain the .feature files to process.
    abstract org.gradle.api.file.RegularFileProperty
    A single .feature file to process.
    abstract org.gradle.api.provider.Property<String>
    Version of the system under test that the reported Gherkin scenarios exercise, printed in the generated document as e.g.
    abstract org.gradle.api.file.RegularFileProperty
    Optional Mustache template used to render the generated AsciiDoc file so that it references the report snippets via include:: directives, instead of embedding their content verbatim.
    abstract org.gradle.api.provider.Property<Boolean>
    Whether to classify every scenario as listed, defined, or implemented and include a progress summary in the generated AsciiDoc.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • NAME

      public static final String NAME
      Extension DSL block name, i.e. the name used to register the extension with the project.
      See Also:
    • DEFAULT_SOURCE_DIR

      public static final String DEFAULT_SOURCE_DIR
      Default relative path of the source directory containing .feature files.
      See Also:
    • DEFAULT_OUTPUT_FILE_NAME

      public static final String DEFAULT_OUTPUT_FILE_NAME
      Default name of the generated AsciiDoc output file.
      See Also:
    • DEFAULT_SNIPPET_DIR

      public static final String DEFAULT_SNIPPET_DIR
      Default relative path of the directory report snippets are written to.
      See Also:
  • Constructor Details

    • GherkinToAsciidocExtension

      public GherkinToAsciidocExtension()
      For use by the Gradle-generated concrete subclass.
  • Method Details

    • getSourceDirs

      public abstract org.gradle.api.file.ConfigurableFileCollection getSourceDirs()
      Source directories that contain the .feature files to process. One or more directories may be configured, e.g. via sourceDirs.from(file('a'), file('b')). Mutually exclusive with getSourceFile().
      Returns:
      mutable file collection of feature file source directories
    • getSourceFile

      public abstract org.gradle.api.file.RegularFileProperty getSourceFile()
      A single .feature file to process. Mutually exclusive with getSourceDirs().
      Returns:
      mutable file property for a single feature file
    • getIncludeSubDirs

      public abstract org.gradle.api.provider.Property<Boolean> getIncludeSubDirs()
      Whether to recursively scan sub-directories of every configured directory in getSourceDirs(). Defaults to false. Forced to true whenever getTrackProgress() is true.
      Returns:
      mutable boolean property controlling recursive directory scanning
    • getOutputDir

      public abstract org.gradle.api.file.DirectoryProperty getOutputDir()
      Directory where the generated AsciiDoc file will be written. Defaults to build/generated-docs.
      Returns:
      mutable directory property for the output directory
    • getOutputFileName

      public abstract org.gradle.api.provider.Property<String> getOutputFileName()
      Name of the generated AsciiDoc file (without path). Defaults to "features.adoc".
      Returns:
      mutable string property for the output file name
    • getTrackProgress

      public abstract org.gradle.api.provider.Property<Boolean> getTrackProgress()
      Whether to classify every scenario as listed, defined, or implemented and include a progress summary in the generated AsciiDoc. Defaults to false.

      Can only be enabled when getSourceDirs() and getGlueCodeDirs() are both configured; enabling it also implies getIncludeSubDirs().

      Returns:
      mutable boolean property controlling progress tracking
    • getGlueCodeDirs

      public abstract org.gradle.api.file.ConfigurableFileCollection getGlueCodeDirs()
      Directories containing the Cucumber-JVM glue code (step definitions) used to determine whether a scenario's steps are implemented. One or more directories may be configured, e.g. via glueCodeDirs.from(file('a'), file('b')). Required when getTrackProgress() is true; ignored otherwise.
      Returns:
      mutable file collection of glue code directories
    • getGroupByFeature

      public abstract org.gradle.api.provider.Property<Boolean> getGroupByFeature()
      Whether to group scenarios by their enclosing Feature in the generated AsciiDoc, instead of a flat list. Defaults to false. Forced to true whenever getTrackProgress() is true, in which case scenarios are grouped by feature within each of the listed/defined/implemented sections.
      Returns:
      mutable boolean property controlling grouping by feature
    • getSnippetDir

      public abstract org.gradle.api.file.DirectoryProperty getSnippetDir()
      Directory that the listed.adoc/defined.adoc/implemented.adoc report snippets are written to when getTrackProgress() is true. Defaults to build/generated-docs/features/snippets.

      When getGroupByFeature() is true, snippets for a status with at least one scenario are written per feature, under <snippetDir>/<camelCaseFeatureTitle>/<status>.adoc.

      Returns:
      mutable directory property for the snippet output directory
    • getTemplate

      public abstract org.gradle.api.file.RegularFileProperty getTemplate()
      Optional Mustache template used to render the generated AsciiDoc file so that it references the report snippets via include:: directives, instead of embedding their content verbatim. Only consulted when getTrackProgress() is true; ignored otherwise.

      When not set, the generated report looks exactly as it does without this property: scenario titles are embedded directly, with no include:: directives. The snippet files are still written either way.

      Returns:
      mutable file property for the Mustache template file
    • getSystemUnderTestVersion

      public abstract org.gradle.api.provider.Property<String> getSystemUnderTestVersion()
      Version of the system under test that the reported Gherkin scenarios exercise, printed in the generated document as e.g. System Under Test version: v1.0.0. Defaults to the project's own version (as set in the build file or a properties file); set this property to override that default, e.g. when the scenarios target a different artifact than the one being built.
      Returns:
      mutable string property for the system-under-test version