0
すべてのフィクスチャにスコープがmodule
であるpytestがあります。私はテストの重複部分を共通の場所に移動し、そこからアクセスしたいと思います。pytest:共通のフィクスチャセットアップを1つの場所に移動
具体的には、以下のサンプルコードでは、test/test_blah.py
には、テスト方法のそれぞれのシリアル番号である変数dsn
があります。私はこの共通コードをどのように抽出するのか分かりませんでした。 TestBase
のdut
にアクセスしようとしましたが、動作させることができませんでした。
# my_pytest/__init__.py
import pytest
@pytest.fixture(scope="module")
def device_fixture(request):
config = getattr(request.module, 'config', {})
device = get_device(config.get('dsn'))
assert device is not None
return device
...some other code...
# test/base.py
class TestBase:
def common_method_1(self):
pass
def common_method_2(self):
pass
# test/test_blah.py
from base import TestBase
import my_pytest
from my_pytest import device_fixture as dut #'dut' stands for 'device under test'
class TestBlah(TestBase):
def test_001(self, dut):
dsn = dut.get_serialno()
...
# how to extract the dsn = dut.get_serialno() into
# something common so I can keep these tests more DRY?
def test_002(self, dut):
dsn = dut.get_serialno()
...
def test_003(self, dut):
dsn = dut.get_serialno()
...
「あなたはそれがうまくいかない」と言います。特にどんな問題が発生しましたか? – jwd
参照:http://stackoverflow.com/questions/33508060/create-and-import-helper-functions-in-tests-without-creating-packages-in-test-di – jwd