【问题标题】:Change production env to test env in adonis 5在adonis 5中将生产环境更改为测试环境
【发布时间】:2020-10-16 23:52:31
【问题描述】:

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

为了运行测试,我使用 node ace services --watch 启动服务器,然后运行命令 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,
  ]
})```

【问题讨论】:

    标签: javascript node.js adonis.js japa


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-06-10
      • 1970-01-01
      • 2023-04-09
      • 1970-01-01
      • 1970-01-01
      • 2019-10-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多