0.0
No release in over 3 years
Low commit activity in last 3 years
Ruby gem to help you to generate the reverse-coverage relationship between code and tests. The output is a `.transmute.json` file with key as source code + line and the value is an array with all specs that touch this particular line.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
 Dependencies
 Project Readme

Welcome to Transmute

Transmute is a binary that works alone or in coordination with coverage formatter to report test quality. It will change your code and make the tests fail. If don't, we will raise it for you.

Any software requires well-written tests. This is where transmute steps in.

The key features of transmute are:

  • Mutate: Arbitrary code can be changed.

    Mutates booleans, numbers, strings, symbols, ranges, regexes and branches (if, while, unless, until) can be changed in order to make your specs fail.

  • Dynamic: Automatically run the tests

    Provide how to run the tests and transmute will run it..

  • Coverage: Transmute will run just the affected tests.

    Instead of running all the specs, we will run only the required specs. This is good to provide a quick feedback-loop.

  • Insights: If the tests didn't fail, we will provide the information that you need to write a new tests case.

Getting Started

$ transmute \
  --files "app/models/**/*.rb" \
  --coverage "transmute.json" \
  --command "rspec {file}" \
  --formatter "html" \
  --log-level "trace"

Coverage file

Coverage is a file generated by the coverage formatter. We are building integration for the most used test libraries.

It is a good practice to provide the coverage.json file. It is very simple: For each implementation file, we have all the specs that touches it. With that in hand, we don't need to run all specs in order to test one constant mutation.

Contributing

I ❤️ Open source!

Clone
git clone git@github.com:vgsantoniazzi/transmute.git
Compile
make build
Run tests
make test
Run with our dummy project
make run.dummy
Format
make format

Follow github guides for forking a project

Follow github guides for contributing open source

Squash pull request into a single commit

License

Transmute is released under the GNU license.