hac*_*kel 5 cucumberjs cypress
使用 cypress-cucumber-preprocessor 1.5.1 运行 Cypress 3.1.1。我需要将一些静态数据从一个步骤传递到另一个步骤(在同一场景/测试中)。我可以使用别名来做到这一点,就像这样:
cy.wrap(someString).as('myString'),但是我必须异步访问它:
cy.get('@myString').then(myString => ...)
这是相当麻烦的,特别是当我必须传递多个值时,需要多个包装的闭包,而没有明显的好处。(目前我正在通过为对象设置别名来解决这个问题,但我不需要这样做。)
如何将原始值从一个步骤同步传递到另一个步骤?
我以为我可以简单地设置this.myString=''为 Mocha 共享上下文对象上的值,但在这种情况下,该属性存在但在后续步骤中访问时设置为 undefined。
即使在步骤定义之外使用 let 创建我自己的上下文变量也不起作用。这仅仅是 Cypress 和/或 cypress-cucumber-preprocessor 的限制吗?
小智 5
我设法让它按以下方式工作:
const testStore = {}
module.exports = (on, config) => {
on('task', {
pushValue({ name, value }) {
console.log(name, value)
testStore[name] = value
console.log(testStore)
return true
},
})
on('task', {
getValue(name) {
return testStore[name]
},
})
Run Code Online (Sandbox Code Playgroud)
it('test', ()=>{
cy.task('pushValue', { name: 'orderNumber', value: orderNumber })
})
it('test 2', ()=>{
cy.task('getValue', 'orderNumber').then((order) => {
cy.visit(`/bookings/${order}`)
})
})
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4073 次 |
| 最近记录: |