我正试图在运行测试之前使用cy.taks((将某些数据集加载到mongo。但我犯了错误。我有一个模块,可以导出两个函数,一个用于删除集合,另一个用于将对象加载到集合。这是我的cypr/plugins/index.js:
module.exports = (on, config) => {
on("task", {
"defaults:db": () => {
const {dropCollection, createUser } = require("../../lib/connectDB");
dropCollection("users");
createUser(userData)
},
});
};
这是我的/lib/connecDB.js:
export function dropCollection(collection) {
return mongoose.connection.dropCollection(collection);
}
export async function createUserInDB(userData) {
await User.create(userData);
}
因此,当我运行测试时,我得到:cy.task('defaults:db'(失败,出现以下错误:
意外的令牌"导出">
也尝试在index.js导出之外导入这些函数,但得到了相同的结果。我认为这是关于出口/进口的。函数导出为ES6,导入为ES5。我试着导入ES6的功能,比如:
import { dropCollection, createUser } from '../lib/connectDB'
然后将插件函数导出为ES6,但随后我得到:
Error: The plugins file is missing or invalid.
Your `pluginsFile` is set to `C:UserssomeRoutecypresspluginsindex.js`, but either the file is missing, it contains a syntax error, or threw an error when required. The `pluginsFile` must be a `.js`, `.ts`, or `.coffee` file.
我还尝试导入功能之外所需的模块,如:
const globalDbUtils = require('../lib/connectDB')
然后将函数用作globalDbUtils.dropCollection("collectionName"(globalDbUtils.createUser(userData(
但我犯了最后一个错误。我已经尝试了几乎所有的东西,我试图直接导入Mongoose模型,mongo客户端等。我还试图只导入一个函数并返回它(只是复制/粘贴官方文档…(,但无法使其工作。我研究了几天,但一无所获,我发现有一个npm包可以帮助你做到这一点,但由于柏树允许你不使用更多的插件来完成这一任务,我想只使用柏树本身的工具。
有人知道我做错了什么吗?
提前感谢!
您需要在文件顶部使用require
而不是import
,在底部导出时使用
module.exports = { createUserInDB }
而不是像您目前所做的exporting
。