Petitest
A minimal solid testing framework for Ruby.
Installation
Add this line to your application's Gemfile:
gem "petitest"And then execute:
bundleOr install it yourself as:
gem install petitestUsage
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
endRun it as a Ruby script
Run your test file as a Ruby script:
ruby test/example_test.rbPetitestTest
#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.newRun test rake task that you defined in the above code to run all tests:
rake testNote 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 = truecolor_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 = truesubscribers
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::JsonReportSubscriberPetitest::Subscribers::ProgressReportSubscriber
Official Plugins
Here are some official plugins for Petitest:
- https://github.com/petitest/petitest-assertions
- https://github.com/petitest/petitest-dsl
- https://github.com/petitest/petitest-power_assert
- https://github.com/petitest/petitest-spec
- https://github.com/petitest/petitest-tap
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
- Test 1-1
- Test 1-2
- Test 1-3
- Test 1-1-1
- Test 1-1-2
- Test 1-1-3
- Test 2-1
- Test 2-2
- Test 2-3
- Test 3-1
- Test 3-2
- Test 3-3
- Test 3-1-1
- Test 3-1-2
- 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)
