gpt4 book ai didi

javascript - 在运行测试之前使用 sequelize 种子文件种子数据库

转载 作者:数据小太阳 更新时间:2023-10-29 04:53:01 25 4
gpt4 key购买 nike

如何使用 sequelize seeder 文件在我的测试文件 (Jest) 中执行 rake 样式命令?

我正在尝试做与此相同的事情,但使用 sequelize。

describe('routes : movies', () => {

beforeEach(() => {
return knex.migrate.rollback()
.then(() => { return knex.migrate.latest(); })
.then(() => { return knex.seed.run(); });
});

afterEach(() => {
return knex.migrate.rollback();
});


});

最佳答案

我知道我来晚了,但过去一周我一直在努力解决这个问题。我已经能够使用 Sequelize 及其姊妹项目 Umzug 成功地做到这一点。您必须阅读针对您的特定问题的文档,但我可以复制我的测试文件,以便您了解我是如何做到的。如果有人在查看文件后仍然遇到困难,我很乐意帮助他们。

// account.test.js
const models = require('../models/index.js');
const migrations = require("../index");

beforeAll(async () => {
await migrations.up().then(function() {
console.log("Migration and seeding completed")
});
});

afterAll( async () => {
await migrations.down().then(function() {
console.log("Migrations and down seeding completed");
})
const users = await models.User.findAll();
expect(users).toStrictEqual([]);
});

describe("Integration Test", () => {
it("Account integration test", async () => {
const data = { userId: 1210}
const users = await models.User.findAll();
console.log("All users:", JSON.stringify(users, null, 2));
expect(users[0].firstName).toBe('John');
expect(data).toHaveProperty('userId');
});
});

我的 index.js 文件

// index.js
const config = require('/config/config.json');
const { Sequelize } = require('sequelize');
const { Umzug, SequelizeStorage } = require('umzug');

const sequelize = new Sequelize(config);

const umzugMigration = new Umzug({
migrations: { glob: 'migrations/*.js' },
context: sequelize.getQueryInterface(),
storage: new SequelizeStorage({ sequelize }),
logger: console,
});

const umzugSeeding = new Umzug({
migrations: { glob: 'seeders/*.js' },
context: sequelize.getQueryInterface(),
storage: new SequelizeStorage({ sequelize }),
logger: console,
});


module.exports.up = () => umzugMigration.up().then(() => umzugSeeding.up());
module.exports.down = () => umzugSeeding.down();

关于javascript - 在运行测试之前使用 sequelize 种子文件种子数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49349326/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com