数据驱动方法中的延长器故障和浏览器处理



我们正在开发数据驱动的量角器框架(jasmine(,我需要帮助处理某些失败场景。

我将使用不同的数据集迭代相同的测试,我的Page模块将处理所有验证。

如果任何it块失败,我想运行特定的功能来清除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启动,suite启动(描述(,spec启动(it(,suite完成,jasmine完成。不确定你们是否都是,但有一点是肯定的:spec-done。这应该是将在每个it块之后调用的函数。它将以spec对象为参数。你可以自己探索它,但你需要的是status属性(spec.status(。它的值可以是'passed''failed',我相信其他的。所以你的逻辑会是
if (spec.status === 'passed') {
// ...
} else if (spec.status === 'failed') {
// ...
} else {
// ...
}

最新更新