<commit_before>@keep-ansi-escape-sequences
@log_commands
Feature: Run specs with plaintext reporter
  As a developer who is working on some code that is covered by specs
  In order to know which specs are running, passing, and failing as well as how they are failing
  I want to run specs on the command line and see a text report of specs and their results

  As a developer who is working on JavaSpec
  In order to demonstrate how JavaSpec runs specs and reports results on the console
  I want to run JavaSpec from code where it is easy to scrape console output and to define how it should be presented

  ## Run specifics: How does a plaintext reporter present information to the developer?

  Scenario: Text output should still be legible, when running specs in a terminal that doesn't grok ANSI color codes
  Note: Although plugins exist to parse and/or strip color codes from the output, the escape sequences used to change
  color and move around on the terminal are often output as plain text on Jenkins.

    Given I have a JavaSpec runner for the console
    And I have 2 or more spec collections with a variety of results
    When I run those specs with a plain text reporter
    Then the runner's output should not contain any ANSI escape sequences


  Scenario: Specs should be shown as a bulleted list under the subject
    Given I have a JavaSpec runner for the console
    And I have specs that describe a single subject
    When I run those specs with a plain text reporter
    Then the runner's output should be
    """
    Tightrope
    * sags to the ground, when a coyote with an anvil is standing on it: PASS
    * recoils when the coyote drops the anvil: PASS

    [Testing complete] Passed: 2, Failed: 0, Total: 2
    """


  Scenario: 2 or more subjects should be separated by a newline
    Given I have a JavaSpec runner for the console
    And I have specs that describe 2 or more subjects
    When I run those specs with a plain text reporter<commit_msg>Pick a scenario to drive wrapper adding the spec classpath<commit_after>@keep-ansi-escape-sequences
@log_commands
Feature: Run specs with plaintext reporter
  As a developer who is working on some code that is covered by specs
  In order to know which specs are running, passing, and failing as well as how they are failing
  I want to run specs on the command line and see a text report of specs and their results

  As a developer who is working on JavaSpec
  In order to demonstrate how JavaSpec runs specs and reports results on the console
  I want to run JavaSpec from code where it is easy to scrape console output and to define how it should be presented

  ## Run specifics: How does a plaintext reporter present information to the developer?

  Scenario: Text output should still be legible, when running specs in a terminal that doesn't grok ANSI color codes
  Note: Although plugins exist to parse and/or strip color codes from the output, the escape sequences used to change
  color and move around on the terminal are often output as plain text on Jenkins.

    Given I have a JavaSpec runner for the console
    And I have 2 or more spec collections with a variety of results
    When I run those specs with a plain text reporter
    Then the runner's output should not contain any ANSI escape sequences


  @distribution
  @focus @wip
  Scenario: Specs should be shown as a bulleted list under the subject
  TODO KDK: Need a way to add spec_class_dir to the classpath
    Given I have a JavaSpec runner for the console
    And I have specs that describe a single subject
    When I run those specs with a plain text reporter
    Then the runner's output should be
    """
    Tightrope
    * sags to the ground, when a coyote with an anvil is standing on it: PASS
    * recoils when the coyote drops the anvil: PASS

    [Testing complete] Passed: 2, Failed: 0, Total: 2
    """


  Scenario: 2 or more subjects should be separated by a newline
    Given I have a JavaSpec runner for the console
    And I have specs that describe 2 or more subjects
    When I run those specs with a plain text reporter
{'fraction_non_alphanumeric': 0.02243355279200195, 'fraction_numerical': 0.002926115581565472, 'mean_word_length': 3.5076923076923077, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '7246318', 'n_tokens_mistral': 1061, 'n_tokens_neox': 986, 'n_words': 682}