Python 硒从鼻子到鼻子
我正在考虑从当前的测试框架nose w/nose testconfig切换到py.test。有没有关于如何使用pytest fixture覆盖以下代码的建议Python 硒从鼻子到鼻子,python,selenium,selenium-webdriver,pytest,nose,Python,Selenium,Selenium Webdriver,Pytest,Nose,我正在考虑从当前的测试框架nose w/nose testconfig切换到py.test。有没有关于如何使用pytest fixture覆盖以下代码的建议 class BaseTestCase(unittest.TestCase, Navigation): @classmethod def setUpClass(cls): browser = Browser.getDriver((config['browser']).lower()) cls.driver = EventFi
class BaseTestCase(unittest.TestCase, Navigation):
@classmethod
def setUpClass(cls):
browser = Browser.getDriver((config['browser']).lower())
cls.driver = EventFiringWebDriver(browser, MyListener())
cls.driver.implicitly_wait(10)
cls.driver.maximize_window()
try:
cls.driver.get(config['url'])
except KeyError:
cls.driver.get(DEV_ENV_URL)
def run(self, result=None):
super(BaseTestCase, self).run(MyTestResult(result, self))
@classmethod
def tearDownClass(cls):
cls.driver.quit()
我希望能够传递命令行参数,即url、浏览器、调试等。首先,查看py.test文档 第二,假设您想使用夹具而不是
安装/拆卸,那么您需要做的事情很少:
在测试用例所在的位置创建一个新文件conftest.py
。如果您将它放在其他地方,py.test将找不到它
def pytest_addoption(parser):
parser.addoption("--browser", action="store", default="chrome", help="Type in browser type")
parser.addoption("--url", action="store", default=DEV_ENV_URL, help="url")
@pytest.fixture(scope='class', autouse=True)
def driver(request):
browser_name = request.config.getoption("--browser")
url = request.config.getoption("--url")
driver = Browser(browser_name).getDriver() #
driver.get(url)
yield driver # Write your setUp before 'yield'
driver.quit() # Write tearDown after 'yield'
这将使您的所有测试都使用此夹具。但是我可以看到另一个问题,您的测试继承自此BaseTestCase
,因此如果您没有遵循py.test
支持的命名约定,它将找不到您的测试(请阅读该文档)
不过,还有很多东西需要测试。正如我在文件中所说的那样