Testing 在每个钩子之前测试.before钩子覆盖功能.before钩子。糟糕的逻辑?
文档()说明:Testing 在每个钩子之前测试.before钩子覆盖功能.before钩子。糟糕的逻辑?,testing,automated-tests,hook,e2e-testing,testcafe,Testing,Automated Tests,Hook,E2e Testing,Testcafe,文档()说明: 如果指定了test.before或test.after,它将覆盖每个挂钩对应的fixture.beforeach和fixture.afterEach,以便后者不会执行 这不合逻辑。不应在每次执行之前先执行功能 我的代码使用feature.beforeach钩子最大化浏览器。我工作的网站根据页面大小有不同的DOM元素-手机、平板电脑、桌面等 当TestCafe打开浏览器时,它的大小总是很小。如果我想处理桌面元素,我必须先等待浏览器最大化。我不能使用test.before钩子,因为它
如果指定了test.before或test.after,它将覆盖每个挂钩对应的fixture.beforeach和fixture.afterEach,以便后者不会执行 这不合逻辑。不应在每次执行之前先执行功能 我的代码使用feature.beforeach钩子最大化浏览器。我工作的网站根据页面大小有不同的DOM元素-手机、平板电脑、桌面等 当TestCafe打开浏览器时,它的大小总是很小。如果我想处理桌面元素,我必须先等待浏览器最大化。我不能使用test.before钩子,因为它将尝试访问不存在的元素,并立即失败
建议:我们能让每个钩子之前的特性总是先执行吗?这可能类似于Cucumber中的“Background”命令,该命令在功能的每个场景之前运行?我不会在一个套件中混合测试不同的域,如桌面和移动设备,但如果是这样: 我建议建立一个小黄瓜句子,根据即将进行的测试设置环境设置 小黄瓜内部的业务逻辑必须更加灵活,java代码必须根据之前设置的开关对应不同的Web元素 根据DSL gherkin提供的参数,您可以创建涵盖所有域(移动、桌面)的gherkin步骤定义,也可以为每个域构建自己的语句,例如:
Either (parameter driven):
Open the Startpage on the <domain> interface
OR:
Open the Startpage on the mobile interface
AND
Open the Startpage on the desktop interface
Method for parameter-driven:
@When ("^Open the Startpage on the (.*) interface$")
public void OpenTheStartpageOnTheInterface(String domain){
if(domain.equals("desktop"){
driver.get("desktop.url");
}else if (domain.equals("mobile")){
driver.get("mobile.url");
}
任一(参数驱动):
在界面上打开Startpage
或:
在移动界面上打开Startpage
及
在桌面界面上打开Startpage
参数驱动的方法:
@当(“^打开(.*)接口$”上的起始页)
public void在界面上打开起始页(字符串域){
if(domain.equals(“桌面”){
get(“desktop.url”);
}else if(domain.equals(“移动”)){
driver.get(“mobile.url”);
}
因此,我要么将java方法复杂化,以对不同的域做出反应,要么将testsuite划分为不同的词汇表,甚至是不同的项目。测试之前的
钩子可能只在有操作的情况下访问元素(并且maximeWindow
不是其中之一)尝试访问元素。在钩子之前,测试中有哪些操作?