free_mutant/docs/reading-reports.md
2018-11-27 12:59:43 +00:00

1.8 KiB

Reading Reports

Mutation output is grouped by selection groups. Each group contains three sections:

  1. An identifier for the current group.

    Format:

    [SUBJECT EXPRESSION]:[SOURCE LOCATION]:[LINENO]
    

    Example:

    Book#add_page:Book#add_page:/home/dev/mutant-examples/lib/book.rb:18
    
  2. A list of specs that mutant ran to try to kill mutations for the current group.

    Format:

    - [INTEGRATION]:0:[SPEC LOCATION]:[SPEC DESCRIPTION]
    - [INTEGRATION]:1:[SPEC LOCATION]:[SPEC DESCRIPTION]
    

    Example:

    - rspec:0:./spec/unit/book_spec.rb:9/Book#add_page should return self
    - rspec:1:./spec/unit/book_spec.rb:13/Book#add_page should add page to book
    
  3. A list of unkilled mutations diffed against the original unparsed source

    Format:

    [MUTATION TYPE]:[SUBJECT EXPRESSION]:[SOURCE LOCATION]:[SOURCE LINENO]:[IDENTIFIER]
    [DIFF]
    -----------------------
    
    • [MUTATION TYPE] will be one of the following:
      • evil - a mutation of your source was not killed by your tests
      • neutral your original source was injected and one or more tests failed
    • [IDENTIFIER] - Unique identifier for this mutation

    Example:

    evil:Book#add_page:Book#add_page:/home/dev/mutant-examples/lib/book.rb:18:01f69
    @@ -1,6 +1,6 @@
     def add_page(page)
    -  @pages << page
    +  @pages
       @index[page.number] = page
       self
     end
    -----------------------
    evil:Book#add_page:Book#add_page:/home/dev/mutant-examples/lib/book.rb:18:b1ff2
    @@ -1,6 +1,6 @@
     def add_page(page)
    -  @pages << page
    +  self
       @index[page.number] = page
       self
     end
    -----------------------
    

At this time no machine readable output exists in the opensourced versions of mutant.