Decorator and plugin to make nose focus on specific tests
This provides a nice little decorator and a nose-tests switch to make nose only run the tests that you are focusing on right now.
- No longer support python2, which also means this module now has no dependencies
- code is formatted with black
- nose_focus tests are now written using pytest
- When you focus a class, tests using that class outside that module will also be focused
- before 0.1.4
- Changelog not kept
Just use the focus decorator in your tests:
from nose_focus import focus @focus def test_my_amazing_feature(): assert_is_awesome(my_feature)
Or set it on your classes:
from nose_focus import focus @focus class MyTests(TestCase): [...]
Or if you also want to focus on subclasses:
@focus_all class MyTests(TestCase): [..] class OtherTests(MyTests): # Also part of the test because it's parent class has focus_all [..]
Or at the module level, set nose_focus to True
nose_focus = True def test_my_other_amazing_feature(): assert_great_things()
And use the switch when you run your tests:
And the plugin will skip all the tests that we aren’t focusing on or set to be ignored.
You may also use nose_focus to run all your tests except those that are ignored.
from nose_focus import focus_ignore @focus_ignore def test_that_is_ignored(): [..] def test_that_is_not_ignored(): [..]
And use the --without-ignored to make it run all tests except those that are ignored:
- Sets nose_focus to True on func
- Sets nose_focus_all to True on kls. The plugin looks for this attribute in the lineage of base classes for each method when determining to skip them or not.
- Sets nose_focus_ignore to True on thing. The plugin will look for this on each method and the lineage of base classes and will ignore the method if it finds it.
- –with-focus nosetests switch
- Enables the plugin making it only run those tests that are set to focus and are not set to be ignored
- –without-ignored nosetests switch
- Makes the plugin run all tests except those that are set to be ignored
How it works
The plugin uses several want* hooks on a nose plugin to only let through methods that we want to focus on.
A method is focused if it or it’s parent class has nose_focus set to a Truthy value or if any class in the lineage of parent classes has nose_focus_all set to a Truthy value and nothing in the lineage has nose_focus_ignore set to a Truthy value.
pip install nose-focus
Or if you’re developing it:
pip install -e . pip install -e ".[tests]"
To run the tests in this project, just use the helpful script:
Or run tox:
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
|Filename, size||File type||Python version||Upload date||Hashes|
|Filename, size nose_focus-0.2.0.tar.gz (5.0 kB)||File type Source||Python version None||Upload date||Hashes View|