如何与 Cypress 中的 JSON 配置文件交互
我的前端依赖于一个 json 配置文件,该文件包含可以修改页面内容的各种参数。
当测试开始时,我的文件有特定的内容。 我想找到一种方法来编写此文件,但仅适用于当前测试,因此不会为下一个测试留下任何状态。
这是我当前的解决方案,但问题是,如果测试失败,则不会重置文件的原始版本。另一种方法可能是什么?
it('should work a specific way with the given configuration', () => {
cy.readFile('my-app/parameters.json').then(
(originalFile) => {
// Modify the json file however I'd like
cy.writeFile('my-app/parameters.json', someConfiguration);
// Test details
cy.writeFile('my-app/parameters.json', originalFile);
}
);
});
My frontend depends of a json configuration file that holds various parameters that can modify the content of the page.
When the test starts, my file has a specific content.
I would like to find a way to write this file but only for the current test so no state is left for the next test.
This is my current solution, but problem is that if tests fail, the original version of the file is not reset. What could be another approach ?
it('should work a specific way with the given configuration', () => {
cy.readFile('my-app/parameters.json').then(
(originalFile) => {
// Modify the json file however I'd like
cy.writeFile('my-app/parameters.json', someConfiguration);
// Test details
cy.writeFile('my-app/parameters.json', originalFile);
}
);
});
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您所做的事情并没有什么问题(就像重置数据库一样)。
但也许对原始名称使用不同的名称?
请记住,当测试中途失败时,您可能不会写回原始内容。
将 cy.readFile('defaultParameters.json') 移至 cy.fixture('defaultParameters.json'),因为 Cypress 会缓存夹具读取。
请参阅fixture - 仅加载一次
There's nothing really wrong with what you're doing (it's like resetting a database).
But perhaps use a different name for the original?
Keep in mind when the test fails mid way you might not write the original back.
Move
cy.readFile('defaultParameters.json')
tocy.fixture('defaultParameters.json')
since Cypress caches the fixture read.See fixture - Loaded just once