Migration Guide¶
This page includes migration guides, upcoming features, and historical context for upgrading rustest.
For the complete changelog with all version history, see the Changelog.
Upcoming Features¶
Planned features for future releases:
- Parallel execution control: CLI options to control worker count (
-j,--workers) - JUnit XML output: Generate JUnit-compatible test reports
- HTML reports: Generate HTML test reports
- Coverage integration: Built-in coverage reporting
- Test timeouts: Built-in timeout support with
@mark.timeout() - Better error messages: More helpful assertion failure messages
See our GitHub issues for the full roadmap.
Version Upgrades¶
Migrating from 0.4.x to 0.5.0¶
No breaking changes! The 0.5.0 release is fully backward compatible with 0.4.x.
New features:
- Mark-based filtering: You can now filter tests by marks using the
-mflag:
# Run only slow tests
rustest -m "slow"
# Skip slow tests
rustest -m "not slow"
# Complex expressions
rustest -m "(slow or fast) and not integration"
- Standard pytest marks: New standard marks are available:
from rustest import mark
@mark.skipif(condition, reason="Skipped because...")
def test_example():
pass
@mark.xfail(reason="Expected to fail")
def test_failing():
pass
@mark.usefixtures("setup_fixture")
def test_with_fixture():
pass
- Documentation: Full documentation is now available at https://apex-engineers-inc.github.io/rustest
Migrating from 0.3.x to 0.4.0¶
No breaking changes! The 0.4.0 release is fully backward compatible with 0.3.x.
New feature: Markdown testing is now enabled by default. If you don't want to test markdown files:
Migrating from pytest¶
Most pytest code works with minimal changes:
# Change imports from pytest to rustest
from pytest import fixture, parametrize, mark, approx, raises
# to
from rustest import fixture, parametrize, mark, approx, raises
# Everything else stays the same!
Using pytest plugins? See our comprehensive Pytest Plugin Migration Guide for concrete steps to migrate from the top 10 most popular pytest plugins.
See Comparison with pytest for details.