Project

petitest

0.01
No commit activity in last 3 years
No release in over 3 years
A minimal solid testing framework for Ruby.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Development

 Project Readme

Petitest

Gem Version Documentation

A minimal solid testing framework for Ruby.

demo

Installation

Add this line to your application's Gemfile:

gem "petitest"

And then execute:

bundle

Or install it yourself as:

gem install petitest

Usage

Create your test file

Define a child class of Petitest::Test with #test_xxx methods.

require "petitest/autorun"

class ExampleTest < Petitest::Test
  def test_addition
    assert { 1 + 1 == 100 }
  end
end

Run it as a Ruby script

Run your test file as a Ruby script:

ruby test/example_test.rb
PetitestTest
  #test_one_plus_one_to_be_two


Counts:

  1 tests
  1 passes
  0 failures
  0 skips

Times:

  Started:  2017-03-25T15:29:21.243918+09:00
  Finished: 2017-03-25T15:29:21.244149+09:00
  Total:    0.000231s

If any test failed, exit code 1 is returned, othewise 0.

echo $?
0

Run all tests

Require "rake/testtask" and initialize Rake::TestTask on your Rakefile like:

require "rake/testtask"
Rake::TestTask.new

Run test rake task that you defined in the above code to run all tests:

rake test

Note that Rake::TestTask's default test file pattern is test/test*.rb.

Assertions

Petitest provides only one assertion method, #assert.

assert { foo }

If you need more assertions, use plugins like patitest-assertions.

Configuration

backtrace_filters

Mechanism for filter out unnecessary lines from error backtrace. Each element must be able to respond to #=== method.

Petitest.configuration.backtrace_filters = [
  -> (line) { line.start_with?("/path/to/petitest/lib") },
]

color

Enable colored output.

Petitest.configuration.color = true

color_scheme

Color scheme for colored output.

Petitest.configuration.color_scheme = {
  detail: :cyan,
  error: :red,
  pass: :green,
  skip: :yellow,
}

These color types are available on color scheme configuration:

  • :black
  • :blue
  • :bold
  • :cyan
  • :green
  • :magenta
  • :red
  • :white
  • :yellow

output

Output path for some subscribers.

Petitest.configuration.output = ::STDOUT
Petitest.configuration.output.sync = true

subscribers

Test event subscribers (test reporters are kind of subscribers).

Petitest.configuration.subscribers = [
  ::Petitest::Subscribers::DocomentReportSubscriber.new,
]

These subscribers are provided by default:

  • Petitest::Subscribers::DocumentReportSubscriber (default)
  • Petitest::Subscribers::JsonReportSubscriber
  • Petitest::Subscribers::ProgressReportSubscriber

Official Plugins

Here are some official plugins for Petitest:

For developers

Tree

TestPlan
|---TestGroup 1
|   |---Test 1-1
|   |---Test 1-2
|   |---Test 1-3
|   `---TestGroup1-1
|       |---Test 1-1-1
|       |---Test 1-1-2
|       `---Test 1-1-3
|---TestGroup2
|   |---Test 2-1
|   |---Test 2-2
|   `---Test 2-3
`---TestGroup3
    |---Test 3-1
    |---Test 3-2
    |---Test 3-3
    `---TestGroup3-1
        |---Test 3-1-1
        |---Test 3-1-2
        `---Test 3-1-3

Order

  1. Test 1-1
  2. Test 1-2
  3. Test 1-3
  4. Test 1-1-1
  5. Test 1-1-2
  6. Test 1-1-3
  7. Test 2-1
  8. Test 2-2
  9. Test 2-3
  10. Test 3-1
  11. Test 3-2
  12. Test 3-3
  13. Test 3-1-1
  14. Test 3-1-2
  15. Test 3-1-3

Events

  • #before_running_test_plan(test_plan)
  • #before_running_test_group(test_group)
  • #before_running_test(test)
  • #after_running_test(test)
  • #after_running_test_group(test_group)
  • #after_running_test_plan(test_plan)