enkessler/cucumber_analytics

View on GitHub
testing/cucumber/features/modeling/directory_modeling.feature

Summary

Maintainability
Test Coverage
Feature: Directories can be modeled.


  Acceptance criteria

    1. Directories containing feature files can be modeled:
      - the directory's name
      - the directory's full path
      - all feature files contained
      - all directories contained

    2. Directories can be outputted in a convenient form


  Background: Setup test directories
    Given a directory "feature_directory"
    And the following feature file "test_file_1.feature":
    """
    Feature: The test feature 1.

      Scenario: The first scenario's name.
        Given the first step
        When the second step
        Then the third step
    """
    And the following feature file "test_file_2.feature":
    """
    Feature: The test feature 2.

      Scenario: The first scenario's name.
        Given the first step
        When the second step
        Then the third step
    """
    And the following feature file "test_file_3.feature":
    """
    Feature: The test feature 3.

      Scenario: The first scenario's name.
        Given the first step
        When the second step
        Then the third step
    """
    And the following file "random.file":
    """
    Not a .feature file.
    """
    Given a directory "feature_directory/nested_directory"
    And the following feature file "test_file_4.feature":
    """
    Feature: The test feature 1.

      Scenario: The first scenario's name.
        Given the first step
        When the second step
        Then the third step
    """
    And the following feature file "test_file_5.feature":
    """
    Feature: The test feature 2.

      Scenario: The first scenario's name.
        Given the first step
        When the second step
        Then the third step
    """
    And the following file "another_random.file":
    """
    Not a .feature file.
    """
    When the directory "feature_directory" is read
    And the directory "feature_directory/nested_directory" is read

  Scenario: The directory's name is modeled.
    Then directory "1" is found to have the following properties:
      | name | feature_directory |
    And directory "2" is found to have the following properties:
      | name | nested_directory |

  Scenario: The directory's full path is modeled.
    Then directory "1" is found to have the following properties:
      | path | path_to/feature_directory |
    And directory "2" is found to have the following properties:
      | path | path_to/feature_directory/nested_directory |

  Scenario: The directory's feature files are modeled.
    Then directory "1" is found to have the following properties:
      | feature_file_count | 3 |
    And directory "1" feature files are as follows:
      | test_file_1.feature |
      | test_file_2.feature |
      | test_file_3.feature |
    Then directory "2" is found to have the following properties:
      | feature_file_count | 2 |
    And directory "2" feature files are as follows:
      | test_file_4.feature |
      | test_file_5.feature |

  Scenario: The directory's directories are modeled.
    Then directory "1" is found to have the following properties:
      | directory_count | 1 |
    And directory "1" directories are as follows:
      | nested_directory |
    Then directory "2" is found to have the following properties:
      | directory_count | 0 |
    And directory "2" has no directories

  Scenario: Convenient output of a directory
    Then the directory has convenient output