【发布时间】:2017-12-11 16:15:50
【问题描述】:
我正在使用 Pytest 和 Selenium 开发一些测试。 我创建了一个为帐户创建生成虚假帐户数据的函数。 以下是成页(catalogpage)
def fake_account(self, fname, lname, userid, pwd, cpwd):
self._type(self._fname, fname)
self._type(self._last_name, lname)
self._type(self._user_id, userid)
self._type(self._password, pwd)
self._type(self._password_confirm, cpwd)
上面的 _type 方法在我的基本页面中定义如下:
def _type(self, locator, input_text):
self._find(locator).send_keys(input_text)
我将方法 fake_account 调用到多个测试中,进入另一个页面,如下所示:
class TestFakeAccounts():
@pytest.fixture()
def catalogpage(self, driver):
return catalogpage.CatalogPage(driver)
def test_account1(self, catalogpage):
catalogpage.fake_account(fake.name(), "Auth", fake.user_name(), "PassWord_123", "PassWord_123")
....
def test_account2(self, catalogpage):
catalogpage.fake_account(fake.name(), "Auth", fake.user_name(), "PassWord_123", "PassWord_123")
....
当我运行测试时(使用测试文件夹中的 pytest),它会收集我所有的测试,但在整个会话(我的所有测试)中使用相同的生成假数据。 有没有办法设置这个或 pytest 夹具,以便在同一会话期间为每个测试生成新的假数据?
稍后更新(如果有人需要):我能够通过在每个测试中添加“fake.random.seed()”来实现我想要的(不确定这是否是最好的方法,但它对我有用)
【问题讨论】:
-
@Mangohero1,谢谢你的回复,我已经更新了我的帖子,提供更多细节