123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- import { defineConfig } from 'cypress';
- import mqtt from 'mqtt'
- function logWithTimestamp(message, ...args) {
- const timestamp = new Date().toLocaleString();
- console.log(`[${timestamp}] ${message}`, ...args);
- //cy.log(`[${timestamp}] ${message}`);
- }
- export default defineConfig({
- viewportWidth: 1920,
- viewportHeight: 1080,
- e2e: {
- baseUrl: null,//'http://localhost:10086/#/pages/index/index', // Adjust this to match your application's base
- // specPattern: '__e2e_test__/**/*.spec.ts',
- setupNodeEvents(on, config) {
- on('task', {
- // 参数:{ broker, topic, payload [, opts] }
- mqttPublish({ broker = 'ws://localhost:8083/mqtt', topic, payload, qos = 0, retain = false }) {
- return new Promise((resolve, reject) => {
- console.log('这里执行了吗')
- const client = mqtt.connect(broker)
- client.on('connect', () => {
- client.publish(topic, payload, { qos, retain }, err => {
- // console.log(`发布数据--${payload}===broker:${broker}`)
- logWithTimestamp(`发布数据--${payload}===broker:${broker}`)
- // 关键:等底层 socket 的 buffer 清空
- client.stream.on('drain', () => {
- client.end(true) // true = 强制 flush 再关闭
- logWithTimestamp(`drain发布完成 topic : ${topic}`)
- resolve(null)
- })
- logWithTimestamp(`发布完成 topic : ${topic}`)
- if (err) reject(err)
- else resolve(null)
- });
- })
- client.on('error', reject)
- })
- }
- })
- return require('./cypress/plugins/index.js')(on, config);
- },
- },
- });
|