0.01
No release in over 3 years
Tryouts is a high-level testing library (DSL) for your Ruby codes and command-line applications.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Runtime

>= 0
>= 0
 Project Readme

Tryouts v2.4 (2024-07-20)

Ruby tests that read like documentation.

A simple test framework for Ruby code that uses introspection to allow defining checks in comments.

Installation

One of:

  • In your Gemfile: gem 'tryouts'
  • As a gem: gem install tryouts
  • From source:
  $ git clone git://github.com/tryouts/tryouts.git

Usage

  # Run all tests accessible from the current directory (e.g. ./try, ./tryouts))
  $ try

  # Run a single test file
  $ try try/10_utils_try.rb

  # Command arguments
  $ try -h
  Usage: try [options]
      -V, --version                    Display the version
      -q, --quiet                      Run in quiet mode
      -v, --verbose                    Run in verbose mode
      -f, --fails                      Show only failing tryouts
      -D, --debug                      Run in debug mode
      -h, --help                       Display this help

Exit codes

When all tests pass, try exits with a 0. An exit code of 1 or more indicates the number of failing tests.

Writing tests

  ## A very simple test
  1 + 1
  #=> 2

  ## The test description can spread
  ## across multiple lines. The same
  ## is true for test definitions.
  a = 'foo'
  b = 'bar'
  a + b
  #=> 'foobar'

  ## A test will pass when its return
  ## value equals the expectation.
  'foo'.class
  #=> String

  ## The expectations are evaluated as well.
  81
  #=> 9 * 9

  ## Here's an example of testing errors
  begin
    raise RuntimeError
  rescue RuntimeError
    :success
  end
  #=> :success

For real world examples, see Onetimesecret tryouts.

Test setup / cleanup

Put the setup code at the top of the file, and cleanup code at the bottom. Like this:

  # This is called before all tests
  require 'gibbler'
  Gibbler.digest_type = Digest::SHA256


  ## This is a single testcase
    :anything.gibbler
  #=> '8574309'


  # This will be called after all tests
  Gibbler.digest_type = Digest::SHA1

__

Thanks

This collision was brought to you by Montreal.rb.