¿Aparato de prueba de Python para ejecutar una sola prueba?

Estoy buscando algo como los metadatos de focus ruby rspec o las tags de mezcla de elixir para ejecutar una única prueba de python.

Ejemplo de Ruby RSpec:

 # $ rspec spec it 'runs a single test', :focus do expect(2).to eq(2) end 

Elixir ExUnit & Mix Ejemplo:

 # $ mix test --only focus @tag :focus test "only run this test" do assert true end 

¿Es esto posible / disponible con cualquier corredor de prueba de Python y combinación de accesorios? La ejecución de pruebas individuales especificando el module.class.test_name través de los module.class.test_name línea de comandos puede ser muy detallada en proyectos más grandes.

Así que algo como:

Código Python deseado:

 # $ nosetests --only focus from tests.fixtures import focus class TestSomething(unittest.TestCase): @focus def test_all_the_things(self): self.assertEqual(1, 1) 

Saluda a la marca pytest . Puede crear una etiqueta de enfoque, asignar a cualquier caso o método de prueba y luego ejecutar pruebas con el pytest -v -m focus . Por ejemplo:

 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) 

ejecutará test_method2 . Para ejecutar todos los métodos dentro de un TestCase, simplemente marque una clase:

 import unittest import pytest @pytest.mark.focus class TestOne(unittest.TestCase): ...