0
同じメソッドを共有する一連のPython単体テストを実行したいと思います。しかし、テストのサブセットには、より大きく、より特定の変数セットが必要です。これを実現するための一つの方法は、補助関数を定義し、「より具体的な」テストで毎回それを呼び出すことです:Pytestフィクスチャで追加のインスタンス変数を定義する方法
import unittest
class TestFixtures(unittest.TestCase):
def setUp(self):
self.a = 1
def additional_setup(self):
self.b = 1
def test_check_value(self): # Ordinary test
self.assertEqual(self.a, 1)
def test_add_variables(self): # More specific test requiring 'self.b' to be defined
self.additional_setup()
self.assertEqual(self.a + self.b, 2)
if __name__ == "__main__":
unittest.main()
それは、これはPytest fixturesを使用して、よりエレガントに行うことができるように私には思われるが、例のどれも私は、従来のsetUp
メソッドと組み合わせて使用器具を見ました。 Pytestのフィクスチャを使って追加の変数を定義するにはどうすればよいですか?私は実際に単に治具を使用して、後のテストケースで使用する変数を定義することができていない、これまで
を試してみた何
。例えば、
import pytest
import unittest
class TestFixtures(unittest.TestCase):
@pytest.fixture
def additional_setup_fixture():
b = 1
def test_use_fixtures(additional_setup_fixture):
print b
if __name__ == "__main__":
unittest.main()
は、NameError: global name 'b' is not defined.
を生成する。 Pytestのフィクスチャでテスト(ローカル変数またはインスタンス変数の作成)で使用する変数を定義するにはどうすればよいですか?ここ