如何在 Cypress 测试中连接到 SFTP 服务器?
How to connect to SFTP server in Cypress test?
我正在尝试使用 ssh2-sftp-client 连接到 SFTP 服务器
我的 Cypress 测试中的 NPM 包。
这是我目前的测试
describe('example to-do app', () => {
it('displays two todo items by default', () => {
let Client = require('ssh2-sftp-client');
let sftp = new Client();
sftp.connect({
host: 'myHost',
port: 'myPort',
username: 'myUsername',
password: 'myPassword'
}).then(() => {
return sftp.list('/reports');
}).then(data => {
console.log(data, 'the data info');
}).catch(err => {
console.log(err, 'catch error');
});
})
})
目前,当我 运行 测试时我得到这个错误:
Cannot read properties of undefined (reading 'DEFLATE')
node_modules/ssh2/lib/protocol/zlib.js:7:1
5 | createInflate,
6 | constants: {
> 7 | DEFLATE,
| ^
8 | INFLATE,
9 | Z_DEFAULT_CHUNK,
10 | Z_DEFAULT_COMPRESSION,
有人可以告诉我如何解决这个问题吗?
在测试中建立这样的连接是行不通的。这是因为 cypress 不与主机提供的 Node.js 进程通信。在赛普拉斯中,如果我们需要 运行 节点代码,我们需要使用他们所谓的 cy.task
这是他们文档的 link - https://docs.cypress.io/api/commands/task#Examples
这就是为什么您需要在 cypress/plugins/index.js
文件中的任务中建立此连接,然后在您的测试中使用此任务。
这里是一个使用 ssh 连接到 mysql 的例子 - How do I connect mysql with cypress through ssh tunneling?
我正在尝试使用 ssh2-sftp-client 连接到 SFTP 服务器 我的 Cypress 测试中的 NPM 包。
这是我目前的测试
describe('example to-do app', () => {
it('displays two todo items by default', () => {
let Client = require('ssh2-sftp-client');
let sftp = new Client();
sftp.connect({
host: 'myHost',
port: 'myPort',
username: 'myUsername',
password: 'myPassword'
}).then(() => {
return sftp.list('/reports');
}).then(data => {
console.log(data, 'the data info');
}).catch(err => {
console.log(err, 'catch error');
});
})
})
目前,当我 运行 测试时我得到这个错误:
Cannot read properties of undefined (reading 'DEFLATE')
node_modules/ssh2/lib/protocol/zlib.js:7:1
5 | createInflate,
6 | constants: {
> 7 | DEFLATE,
| ^
8 | INFLATE,
9 | Z_DEFAULT_CHUNK,
10 | Z_DEFAULT_COMPRESSION,
有人可以告诉我如何解决这个问题吗?
在测试中建立这样的连接是行不通的。这是因为 cypress 不与主机提供的 Node.js 进程通信。在赛普拉斯中,如果我们需要 运行 节点代码,我们需要使用他们所谓的 cy.task
这是他们文档的 link - https://docs.cypress.io/api/commands/task#Examples
这就是为什么您需要在 cypress/plugins/index.js
文件中的任务中建立此连接,然后在您的测试中使用此任务。
这里是一个使用 ssh 连接到 mysql 的例子 - How do I connect mysql with cypress through ssh tunneling?