Python 硒从鼻子到鼻子

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

我正在考虑从当前的测试框架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 = 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
支持的命名约定,它将找不到您的测试(请阅读该文档)

不过,还有很多东西需要测试。正如我在文件中所说的那样