javascript - 数据驱动方法的量角器故障和浏览器处理
问题描述
我们正在开发数据驱动的量角器框架(茉莉花),我需要帮助来处理某些故障情况。
我将使用不同的数据集迭代相同的测试,我的页面模块将处理所有验证。
如果它阻止任何失败,我想运行某个功能来清除 cookie,捕获会话详细信息并重新启动浏览器(我确实拥有所有功能)
但 ,
我不确定如何让 it 阻塞失败并触发特定功能,我也想确保触发下一个循环迭代。
browser.restart()
- 从来没有在之前或之后驱动的数据中工作过.....
如果我并行运行这些数据驱动(我们可以在并行浏览器中运行相同的测试,但我们不能将每个数据分发到多个浏览器),有没有办法分发?
var dData = requireFile('testData/data.json');
using(dData,async function(data, description) {
describe( scenario 1++ , function() {
it('Load URL' , async function() { })
it('validate Page1' , async function() { xxxxx })
it('validate Page2' , async function() { xxxxx })
it('validate Page3' , async function() { xxxxx })
}) }
解决方案
如果我理解一切正确,你有 3 个问题。我只会回答第一个,一般的 - 如何处理每个it
块的结果
听起来,对于您要实现的内容,您应该在 jasmine中使用自定义报告器的优势
更准确地说,您想要做的是:
- 使用自定义报告器创建模块
- 在您的配置中注册它。如果您想将任何参数传递给记者,这将是一个提前考虑的好地方
- 有不同的钩子:jasmine-started、suite-started(描述)、spec-started(it)、suite-done、jasmine-done。不确定你们是否都是这样,但可以肯定的是:
spec-done
. 这应该是在每个it
块之后调用的函数。它将spec
对象作为参数。您可以自行探索它,但您需要的是status
属性 (spec.status
)。它的价值可以'passed'
,'failed'
我相信别人。所以你的逻辑就像
if (spec.status === 'passed') {
// ...
} else if (spec.status === 'failed') {
// ...
} else {
// ...
}
推荐阅读
- javascript - 如何在每次迭代后暂停旋转图像动画?
- gitlab - Gitlab Runner 中的权限被拒绝
- reactjs - 使用 React、Typescript、Axios、钩子、Material.ui 基本表结构从 props 访问数据以呈现基本表
- java - 带有许多文本元素 itext7 的事件下划线
- flutter - 我在颤振中导入了搜索栏,并收到了一些错误消息
- xamarin - 如果 Page 不在顶部,Xamarin.Forms 在 Navigation.RemovePage 上引发异常
- html - Bootstrap Spacing 什么是md?
- typescript - Next.js “API 已解析但未发送 /api/v1/welcome 响应,这可能会导致请求停止”
- tensorflow - 如何使用 LSTM 进行 7 天预测
- rspec - RSPEC 试图确认 Class 被调用