Python test fixture to run a single test?

后端 未结 1 772
Happy的楠姐
Happy的楠姐 2021-01-17 23:20

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:

#         


        
1条回答
  •  小鲜肉
    小鲜肉 (楼主)
    2021-01-17 23:30

    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.

    0 讨论(0)
提交回复
热议问题