[问题]在不同测试case中共用同一个变量-pytest

楼主: jacobcan118 (jacobcan118)   2016-10-19 12:35:21
请问我想用pytest写单元测试.不过如果我在每个测试中都需要用selenium开启页面.我有任何方法可以使每个测试共用base这个变量吗
谢谢
class TestLogin(object):
def setup_method(self, method):
self.driver = WebDriver(desired_capabilities=desired_capabilities, command_executor=command_executor)
self.current_method_name = method.__name__
def teardown_method(self, method):
self.driver.close()
self.driver.quit()
@pytest.fixture(scope="function")
def loadpage():
self.base = Home(self.driver).open()
def loadLogin():
base.loadLogin()
def test_a(self):
base = Home(self.driver).open()
assert True == base.dotesta()
base.loadLogin()
def test_b(self):
base = Home(self.driver).open()
assert True == base.dotestb()
base.loadLogin()
def test_c(self):
base = Home(self.driver).open()
assert True == base.dotestc()
base.loadLogin()
作者: Typebrook (Pham)   2016-10-19 16:50:00
用 global 前缀看看
作者: aweimeow (喵喵喵喵 ヽ( ・∀・)ノ)   2016-10-20 10:28:00
我之前是在 class 外写 fixture@pytest.fixture(scope="module")def base():return Home(self.driver).open()然后在 class 那边加上你要用的 fixture@pytest.mark.usefixtures('base')class TestLogin(object):def loadpage(self, base):你参考看看 XD

Links booklink

Contact Us: admin [ a t ] ucptt.com