I'm looking for something like ruby rspec's focus
metadata or elixir's mix tags to run a single python test.
# $ rspec spec
it 'runs a single test', :focus do
expect(2).to eq(2)
end
# $ mix test --only focus
@tag :focus
test "only run this test" do
assert true
end
Is this possible / available with any python test runner and fixture combo? Running single tests by specifying nested module.class.test_name
via command line args can become very verbose in larger projects.
So Something like:
# $ nosetests --only focus
from tests.fixtures import focus
class TestSomething(unittest.TestCase):
@focus
def test_all_the_things(self):
self.assertEqual(1, 1)
Say hello to pytest mark. You can create a focus tag, assign to any test case or method and then run tests with pytest -v -m focus
command. For example:
import unittest
import pytest
class TestOne(unittest.TestCase):
def test_method1(self):
# I won't be executed with focus mark
self.assertEqual(1, 1)
@pytest.mark.focus
def test_method2(self):
# I will be executed with focus mark
self.assertEqual(1, 1)
will run test_method2
. To run all methods within some TestCase, you simply mark a class:
import unittest
import pytest
@pytest.mark.focus
class TestOne(unittest.TestCase):
...
You will need to register your custom marks in pytest.ini
like
[pytest]
markers =
focus: what is being developed right now
To see the available marks, run pytest --markers
.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With