作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想编译一个列表并将它们推送到 Cypress 中的 json 数组中。
这就是 json 输出的样子:
[
{
"role": "Administrator",
"scenarios": [
"clients_a",
"clients_d",
"clients_f",
....
]
}
]
这是我到目前为止的代码:
const permission_list = require('../../fixtures/permissions/permissions_admin.json')
const test_plan = 'cypress/fixtures/permissions/test_plan_admin.json'
const role = 'Administrator'
describe('Test plan creator for Administrator', () => {
it('create a test plan', () => {
//prepare the json array
cy.writeFile(test_plan, [{role: role,scenarios: []}])
cy.get(permission_list[0].granted_permissions).then((list) => {
if (Cypress.$.inArray('clients', list) != -1) {
cy.readFile(test_plan).then((scenarios) => {
scenarios.push('clients_a') // this is where I make a mistake I suppose
// write the merged list
cy.writeFile(test_plan, scenarios)
})
}
///added to handle case "clients" was not found in Array
else {
}
})
})
})
这是我的代码的输出:
[
{
"role": "Administrator",
"scenarios": []
},
"clients_a" <-- should be inside the list behind "scenarios"
]
所以很接近,但没有雪茄。如何将值“clients_a”
推送到“scenarios”
列表中?
最佳答案
我采取的方法是在内存中完成所有操作,并且只在最后写入一次完成的列表。
这样做会稍微加快速度,但主要优点是您无需担心附加。
const permission_list = require('../../fixtures/permissions/permissions_admin.json')
const test-plan-file-path = 'cypress/fixtures/permissions/test_plan_admin.json'
const role = 'Administrator'
describe('Test plan creator for Administrator', () => {
it('create a test plan', () => {
//prepare the json array
const scenarios = []
cy.get(permission_list[0].granted_permissions).then((list) => {
if (Cypress.$.inArray('clients', list) != -1) {
scenarios.push('clients_a')
}
})
// write the result
const plan = [{ role, scenarios}]
cy.writeFile(test-plan-file-path, plan)
})
})
这里还有一些奇怪的事情,看起来你在一个循环中推送多个项目,但这里没有循环。需要查看更多应用程序来建议如何解决该问题。
关于arrays - Cypress 将值推送到 json 数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70720787/
我是一名优秀的程序员,十分优秀!