Formerly known as MicroTest.
PryTest
aka pry-test
A small test framework that supports debugging test failures & errors when they happen.
Values
- Simplicity - writing tests should be easy & devoid of friction
- Intelligibility - tests should be readable & unambiguous
- Immediacy - test failures should be dealt with quickly when they occur
Benefits
- A simple test API
- An awesome
fail
pry
pass
workflow - Optional async test runs
An important note on debugging test failures with Pry.
The API
Everything you need to know about PryTest's API is outlined here.
PryTest::Test |
Superclass for all test classes. |
test(desc, &block) |
Defines a test method.
|
assert(value) |
Verifies the truthiness of a value.
|
refute(value) |
Verifies the falsiness of a value.
|
before(&block) |
A callback that runs before each test method.
|
after(&block) |
A callback that runs after each test method.
|
A Complete Example
The entire public interface is used in this basic example.
class MathTest < PryTest::Test
before do
# runs before each test method
end
after do
# runs after each test method
end
test "basic addition" do
assert 2 + 2 == 4
end
test "all is right in the world" do
refute 0 > 1
end
end
Get Started
PryTest ships with a demo so you can try it out easily.
gem install pry-test
pry-test --help
pry-test --demo
Try some advanced features.
pry-test --demo --async
pry-test --demo --disable-pry
Testing Your Own Projects
PryTest assumes your test directory is located at PROJECT_ROOT/test
;
however, this isn't a requirement. You can indicate your test directory location.
pry-test /path/to/test/dir
If you have multiple versions of PryTest installed,
it's safest to run your tests with bundle exec
.
bundle exec pry-test /path/to/test/dir
PryTest is small & unobtrusive. It plays nice with other test frameworks, & can be introduced to existing projects incrementally.
Advanced
See the wiki to troubleshoot or get help with more advanced topics.