为了账号安全,请及时绑定邮箱和手机立即绑定

如何分离测试和夹具

如何分离测试和夹具

繁花如伊 2021-09-11 21:01:46
我在 PyCharm 中有示例项目 - 由一个简单的测试组成,该测试检查登录到给定的正确 Slack 工作区。它有内部web_drivers目录,用于测试的 webdriver 设置和实际测试,fechromedriverconftest.pytests.pyconftest.pyimport osimport pytestfrom selenium import webdriver@pytest.fixture(scope='class')def driver_get(request):    web_driver = webdriver.Chrome(executable_path=os.path.join("web_drivers","chromedriver.exe"))    yield web_driverdef fin():    web_driver.close()request.addfinalizer(fin)测试.pyimport pytestclass TestSlackWorkspace(object):    @pytest.fixture(autouse=True)    def setup(self, driver_get):        self.driver = driver_get        self.driver.get("https://slack.com/signin")        self.input_field = self.driver.find_element_by_xpath(        "//input[@type='text' and @id='domain']")        self.continue_button = self.driver.find_element_by_xpath(        "//button[@id='submit_team_domain']")    def test_correct_workspace(self):        self.input_field.send_keys("test")        self.continue_button.click()        assert self.driver.find_element_by_xpath("//h1[@id='signin_header']"        ).is_displayed(), "Login page should be displayed"现在的问题是将测试划分到页面初始化部分 -def setup和实际测试执行部分 -def test_correct_workspace到不同的类和文件(类似于页面对象模式)所以基数conftest.py应该是一样的,除以test.py即页面.pyclass SlackWorkspace(object):    @pytest.fixture(autouse=True)    def __init__(self, driver_get):        self.driver = driver_get        self.driver.get("https://slack.com/signin")        self.input_field = self.driver.find_element_by_xpath("//input[@type='text' and @id='domain']")        self.continue_button = self.driver.find_element_by_xpath("//button[@id='submit_team_domain']")但肯定它不会以这种形式工作:1)driver_get应该以某种方式导入到页面初始化文件和转发器到__init__- ?2)页面初始化应该以某种方式与其他文件中的测试实现相关联-?不知道如何在单独的文件之间组织所有这些导入
查看完整描述

2 回答

  • 2 回答
  • 0 关注
  • 135 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信