Transmute - a binary that works alone or in coordination with coverage formatter to report test quality

Related tags

Utilities transmute
Overview

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 "**/*[\!_spec].rb" \
  --coverage ".transmute.json" \
  --command "rspec {file}" \
  --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 [email protected]:vgsantoniazzi/transmute.git
Compile
cargo build
Run tests
cargo test
Run with our dummy project
$ cargo run -- \
  --files "**/*[\!_spec].rb" \
  --coverage "tests/fixtures/transmute.json" \
  --command "rspec {file}" \
  --log-level "trace"
Format
cargo fmt

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.

You might also like...
🚧 (Alpha stage software) Binary that supports remote filesystem and process operations. 🚧

distant Binary to connect with a remote machine to edit files and run programs. 🚧 (Alpha stage software) This program is in rapid development and may

Fast binary serialization with versioning.

BinVerSe (Binary Versioned Serializer) Provides fast binary serialization with versioning to store data in a backwards-compatible, compact way. Right

A swiss army knife for creating binary modules for Garry's Mod in Rust.

A swiss army knife for creating binary modules for Garry's Mod in Rust.

Rust+Cargo lightweight hello world with the most minimum binary size possible.

Lightweight Cargo Hello World Rust+Cargo lightweight hello world with the most minimum binary size possible. requirements 1: Rustup (Rustc, Cargo) Ins

CBOR (binary JSON) for Rust with automatic type based decoding and encoding.

THIS PROJECT IS UNMAINTAINED. USE serde_cbor INSTEAD. This crate provides an implementation of RFC 7049, which specifies Concise Binary Object Represe

A dynamic binary tracing tool

Backlight Backlight is a dynamic binary tracing tool. Install $ git clone [email protected]:JoshMcguigan/backlight.git $ cd backlight $ cargo install-b

Small utility to display hour in a binary format on the Novation's Launchpad X.
Small utility to display hour in a binary format on the Novation's Launchpad X.

lpx-binary-clock Small utility to display hour in a binary format on the Novation's Launchpad X. Hours, minutes and seconds are displayed one digit pe

An unofficial and incomplete no_std Rust library for implementing the ElectricUI Binary Protocol
An unofficial and incomplete no_std Rust library for implementing the ElectricUI Binary Protocol

An unofficial and incomplete no_std Rust library for implementing the ElectricUI Binary Protocol

Nix binary cache implemented in rust using libnix-store

harmonia Build Whole application nix-shell --run cargo b C Library Wrapper around libnixstore nix-shell --run make Note: The makefile is only to pro

Comments
  • Support line number for the files argument

    Support line number for the files argument

    In order to support CI and the diff changes to make sure that the code changed has specs and edge cases correctly, add the line number so that we can execute with git diff to specified line numbers.

    opened by vgsantoniazzi 1
Owner
Victor Antoniazzi
Victor Antoniazzi
tracing-glog is a glog-inspired formatter for tracing-subscriber.

tracing-glog tracing-glog is a glog-inspired formatter for tracing-subscriber. tracing-glog should be used with tracing-subscriber, as it is a formatt

David Barsky 7 Oct 8, 2022
A code coverage tool for Rust projects

Tarpaulin Tarpaulin is a code coverage reporting tool for the Cargo build system, named for a waterproof cloth used to cover cargo on a ship. Currentl

null 1.8k Jan 2, 2023
Minimal virus genome coverage assessment for metagenomic diagnostics

vircov Minimal virus genome coverage assessment for metagenomic diagnostics Overview v0.5.0 Purpose Implementation Installation Usage Tests Concept Cl

Eike Steinig 14 Oct 17, 2022
A code generator to reduce repetitive tasks and build high-quality Rust libraries. 🦀

LibMake A code generator to reduce repetitive tasks and build high-quality Rust libraries Welcome to libmake ?? Website • Documentation • Report Bug •

Sebastien Rousseau 27 Mar 12, 2023
Dr-dotnet - 🩺 One-click diagnosis of your dotnet applications. Works both locally or remotely as a web service

Dr-dotnet - ?? One-click diagnosis of your dotnet applications. Works both locally or remotely as a web service. Based on the lowest level dotnet profiling APIs and using the rust language ?? for a minimal runtime penalty.

Olivier Giniaux 25 Dec 17, 2022
Wait Service is a pure rust program to test and wait on the availability of a service.

Wait Service Wait Service is a pure rust program to test and wait on the availability of a service.

Magic Len (Ron Li) 3 Jan 18, 2022
Watches changes in a rust project, runs test and shows friendly notification

Cargo testify Automatically runs tests on your Rust project and notifies about the result. Install Install prerequisites (for Debian/Ubuntu): apt-get

Sergey Potapov 77 May 16, 2022
This is a test to port C++'s ymfm and Rust's vgmplay to ESP32(Xtensa).

m5stack-chipstream This is a test to port C++'s ymfm and Rust's vgmplay to ESP32(Xtensa). Still slow and impractical, depending on the sound chip you

hiromasa 4 Feb 26, 2023
Cargo-BOJ: test and submit solutions to BOJ problems

Cargo-BOJ Test and submit solutions to BOJ (Baekjoon Online Judge) problems. Defaults are geared towards Rust solutions, but non-Rust usage is support

null 5 Apr 3, 2023
A tiling window manager for Windows 10 based on binary space partitioning

yatta BSP Tiling Window Manager for Windows 10 Getting Started This project is still heavily under development and there are no prebuilt binaries avai

Jade 143 Nov 12, 2022