在adonis 5中将生产环境更改为测试环境



我正在adonis 5中实现测试,并希望将production.env更改为test.env.test。在生产环境中,我使用postgres数据库,在测试环境中使用sqlite数据库。在执行测试期间,我添加和删除虚构数据、挤压迁移和回滚迁移。

为了运行测试,我用node ace serves启动服务器——观察,然后运行命令node build/japaFile.js

所以我想知道我从哪里得到测试环境?

我的japaFile文件与adonis 5文档相同,下面是japaFile.ts文件

import 'reflect-metadata'
import execa from 'execa'
import { join } from 'path'
import getPort from 'get-port'
import { configure } from 'japa'
import sourceMapSupport from 'source-map-support'
process.env.NODE_ENV = 'testing'
process.env.ADONIS_ACE_CWD = join(__dirname, '..')
sourceMapSupport.install({ handleUncaughtExceptions: false })
async function runMigrations() {
await execa.node('ace', ['migration:run'], {
stdio: 'inherit',
})
}
async function rollbackMigrations() {
await execa.node('ace', ['migration:rollback'], {
stdio: 'inherit',
})
}
async function startHttpServer() {
const { Ignitor } = await import('@adonisjs/core/build/src/Ignitor')
process.env.PORT = String(await getPort())
await new Ignitor(__dirname).httpServer().start()
}
/**
* Configure test runner
*/
configure({
files: [
'build/test/**/*.spec.js',
],
before: [
runMigrations,
startHttpServer,
],
after: [
rollbackMigrations,
]
})```

您只需创建一个.env.testing文件,并在其中放入所需的值。Japa将在测试时自动加载这些值。

最新更新