I'm looking for something like ruby rspec's focus
metadata or elixir's mix tags to run a single python test.
Ruby RSpec Example:
# $ rspec spec
it 'runs a single test', :focus do
expect(2).to eq(2)
end
Elixir ExUnit & Mix Example:
# $ 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:
Desired Python Code:
# $ 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):
...
来源:https://stackoverflow.com/questions/45267486/python-test-fixture-to-run-a-single-test